You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:24:04