Ich habe eine ADODB-Verbindung in VBA zur Verbindung mit einer SQLServer-Datenbank. Ich möchte den Fehler abfangen, der ausgelöst wird, wenn connection.Open aufgerufen wird und die angegebene Datenbank nicht erreichbar ist.
Mein Code sieht folgendermaßen aus:
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
Mein Problem ist, dass wenn ich versuche, diesen Code mit einem falschen connectionString ausführen ein Fehler ausgelöst wird und in einer MsgBox angezeigt und nicht durch die "On Error GoTo DBError" gefangen.
Gibt es etwas falsch in meinem Fehlerbehandlung Code oder muss ich einen anderen Weg, um diesen Fehler zu fangen finden?
Ich danke Ihnen für Ihre Hilfe. Alle Vorschläge sind willkommen.