gpt4 book ai didi

ADODB Connection.Open 上的 VBA 错误处理

转载 作者:行者123 更新时间:2023-12-05 00:38:38 26 4
gpt4 key购买 nike

我在 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

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

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

感谢您的帮助。欢迎任何建议。

最佳答案

不确定是否是这样,但在 VBE 窗口中确保工具...选项...常规...错误捕获选项设置为“中断未处理的错误”。如果它被设置为“Break on All Errors”,这可能会绕过你的处理程序。

关于ADODB Connection.Open 上的 VBA 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com