最近添加一些引用控件的新VBA代码后,我的代码将无法运行。在调查中,我发现问题是代码中涉及控件的拼写错误:我将其键入为 Me.CheckYearEmd (带有m)而不是 Me.CheckYearEnd
现在已经解决了,代码工作正常,但奇怪的是错误没有触发我的错误处理;它只是没有运行。我的错误处理工作非常简单:
On Error GoTo ErrHandler
... 'Rest of sub
Exit Sub
ErrHandler:
DoCmd.SetWarnings True
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error"
是否有某些特定的内容涉及一个不存在的控件(正如我上面所做的那样)导致它绕过错误处理,是否有办法捕获这些错误?
答案 0 :(得分:2)
我无法重现你描述的情况。当我在表单的代码中拼错控件名称时,从VB编辑器的主菜单运行Debug-> Compile会触发编译错误:“找不到方法或数据成员”。
但是,如果我没有运行Debug-> Compile并且只是尝试使用拼写错误的名称运行表单的过程,我仍然会遇到编译错误。
虽然我无法复制你的情况,但我会猜测为什么程序的错误处理程序无法捕获它。指令On Error GoTo ErrHandler
捕获运行时错误。但拼写错误的控件名称会触发编译错误。