ADODB Connection.Open上的VBA错误处理

PKe*_*eno 4 vba adodb

我在VBA中有一个ADODB连接,用于连接到SQLServer数据库.我想捕获在调用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
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试使用不正确的connectionString运行此代码时,会引发错误并显示在MsgBox中并且未被"On Error GoTo DBError"捕获.

我的错误处理代码有什么问题,或者我是否需要找到另一种方法来捕获此错误?

谢谢您的帮助.欢迎任何建议.

tpa*_*ale 6

不确定是不是这样,但在VBE窗口中确保工具...选项...常规...错误陷印选项设置为"中断未处理的错误".如果将其设置为"Break on All Errors",则可能会绕过您的处理程序.