如何通过Form_OnError事件规避Access默认错误?代码异常求助
解决Access Form_OnError事件中默认错误消息仍显示的问题
我来帮你排查下这个问题,大概率是代码里的小细节没处理对,导致Response = acDataErrContinue没生效。
可能的问题点及修复方案:
语法错误导致代码未正确执行
你写的代码里有两处关键语法问题:MsgBox"ABC"里缺少空格,应该是MsgBox "ABC"- 如果你的引号是中文半角的(比如把英文引号写成了中文引号),也会导致代码报错,必须用英文半角引号
这些语法错误会让事件过程提前终止,Response = acDataErrContinue根本没执行到,所以默认错误还是会弹出来。
确保事件参数正确声明
窗体的OnError事件有固定的参数定义,你得确保参数名和类型都匹配,特别是Response参数的传递规则要正确。
修复后的完整代码示例:
Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 3162 Then MsgBox "自定义错误提示:ABC", vbInformation, "提示" Response = acDataErrContinue ' 明确告诉Access不要显示默认错误弹窗 End If End Sub
额外检查点:
- 确认这个事件确实绑定到了窗体的On Error属性上:打开窗体设计视图,右键窗体→属性→事件选项卡,找到“出错”选项,确保选择的是这个
Form_Error过程。 - 如果还是有问题,可以加个调试语句验证错误捕获情况,比如在
If判断前加Debug.Print "触发错误编号:" & DataErr,然后打开VBA的立即窗口(按Ctrl+G),看看3162错误是否真的被捕获到,会不会是错误号写错了?
内容的提问来源于stack exchange,提问作者Lone
相关产品推荐
相关产品推荐

