一旦我的代码出现错误,我想要打开一个消息框。我故意在代码中构建了错误,但未出现消息框,而是打开了 MicroSoft Visual Basic for Applications。
如何让我的消息框出现?另外,我怎样才能使用完整用户表单的查询?有 UserForm_Error 函数,但它是这个意思吗?
故意的错误是没有DataBaseTest,我想触发这个错误:
错误:变量未定义
Private Sub ConnectCheck()
' Versuchen, eine Verbindung zur Datenbank herzustellen
On Error GoTo ErrorHandler
Dim connStr As String
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathDB & ";Jet OLEDB:DatabaseTest Password=" & PasswordDB & ";" 'no DatabaseTest intentionally entered a mistake
Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
conn.Open connStr
If conn.State = 1 Then
' Verbunden
LabelConnect.Caption = "Connected"
LabelConnect.Font = RGB(0, 255, 0)
Else
' LabelConnect.Caption = "Not Connected"
' LabelConnect.Font = RGB(255, 0, 0)
End If
conn.Close
Set conn = Nothing
Exit Sub
ErrorHandler:
MsgBox "Error: " & Err.Description
End Sub
看起来您可能指的是编译时错误。但是,
On Error
语句仅处理运行时错误。因此,您应该在尝试运行代码之前手动编译代码。这样您就可以在运行时避免编译时错误。
首先,确保在任何过程之前在模块的最顶部有以下语句。这将迫使您声明所有变量。因此,如果您尝试使用未声明的变量,您将收到编译时错误。
Option Explicit
然后手动编译代码,并修复弹出的任何错误。一旦修复了任何错误并保存了工作簿,弹出的任何错误都将在运行时发生,您的
On Error
语句将捕获这些错误。
Visual Basic Editor (Alt+F11) >> Debug >> Compile VBAProject