【发布时间】:2011-03-22 22:42:13
【问题描述】:
我在 VBA 中有一个用于连接 SQLServer 数据库的 ADODB 连接。我想捕捉在 connection.Open 被调用时引发的错误,并且给定的数据库无法访问。
我的代码如下所示:
Public Function Connect() As Boolean
On Error GoTo DBError
Dim dbServer As String
Dim dbName As String
Dim dbUser As String
Dim dbPwd As String
dbServer = DatabaseSettings.dbServer
dbName = DatabaseSettings.dbName
dbUser = DatabaseSettings.dbUser
dbPwd = DatabaseSettings.dbPwd
Dim connectionString As String
connectionString = "Server=" & dbServer & ";Database=" & dbName & ";User Id=" & dbUser & ";Password=" & dbPwd
Set conn = New ADODB.Connection
conn.Provider = "sqloledb"
With conn
.ConnectionTimeout = 2
.CursorLocation = adUseClient
.Open connectionString
.CommandTimeout = 0
End With
Connect = True
Exit Function
DBError:
Connect = False
End Function
我的问题是,当我尝试使用不正确的 connectionString 运行此代码时,会引发错误并显示在 MsgBox 中,并且不会被“On Error GoTo DBError”捕获。
我的错误处理代码是否有问题,或者我是否需要找到另一种方法来捕获此错误?
感谢您的帮助。欢迎提出任何建议。
【问题讨论】: