在Windows 10(现在为Access 2010)上,希望不久之后在Access 2016中,我运行一个使用SQL Server的Frontend(2017,但这不是重点),并将存储过程所需的所有数据都推送到我的前端。
但是,我想将此前端与不断变化的后端一起使用(两名开发人员在lokal实例上使用它,并且应该以某种方式在便携式计算机等上脱机工作。)
现在,随着启动,我首先想检查默认连接,如果失败,我想打开一个表单,以便用户可以选择其他典型的服务器之一。
我遇到两个问题:
通过测试连接,更改延迟时间失败,因此,如果预期的连接不可用,则用户始终必须等待默认的60秒。
如果连接失败,我将无法抑制系统中的两个丑陋的错误重播(我猜这是从Windows而不是从Access来的)。如果发生错误,我希望打开一个表单,以便用户可以更好地选择服务器。
为了测试连接,我使用以下代码(p_strCon是连接字符串,如果选择了正确的字符串,它们可以正常工作!):</ p>
Public Function CheckConnection() As Boolean
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb()
db.QueryTimeout = 2
Set qdf = db.CreateQueryDef("")
With qdf
.Connect = p_strCon
.sql = "SELECT 2"
.ODBCTimeout = 2
On Error Resume Next
.OpenRecordset
DoCmd.SetWarnings True
If Err.Number = 0 Then
CheckConnection = True
Else
CheckConnection = False
End If
On Error GoTo 0
End With
End Function
很明显,如果连接错误,.OpenRecordset就会发生错误。但是我抓不到!
是Access或Windows中的一个错误,我是否可以更改超时,也不能处理即将发生的错误?
我看过这篇文章:Catching Microsoft Access ODBC connection errors to SQL Server linked tables和其他几篇。没有为我工作,找不到任何帮助。