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

获取Access追加查询警告的错误编号,解决Err.Number返回0的问题

解决Access追加查询错误编号获取及提示问题

一、为什么弹出“Error 0:”

你的错误处理代码弹出Error 0:,是因为错误没有被正确捕获,常见原因有两个:

  • 代码开头未添加On Error GoTo ErrorHandler语句,导致错误发生时不会跳转到ErrorHandler标签执行处理逻辑
  • 错误触发后,Err对象的属性被意外重置(比如在错误发生到进入处理代码之间,执行了会清除Err状态的操作)

二、获取“无法追加追加查询中的所有记录”的错误编号

这个警告对应的典型错误编号是3022,一般是因为要追加的记录违反了表的约束规则(比如主键重复、唯一字段重复)。

如果想确认具体编号,可以用这段代码手动捕获:

On Error Resume Next
' 执行会触发该错误的追加查询操作
If Err.Number <> 0 Then
    MsgBox "错误编号:" & Err.Number & vbCrLf & "描述:" & Err.Description
    Err.Clear
End If
On Error GoTo 0

运行代码触发错误后,就能看到准确的错误编号。

三、修改后的针对性错误处理代码

先在代码开头加上错误捕获语句,再调整处理逻辑:

On Error GoTo ErrorHandler

' 你的主业务代码(执行追加查询的逻辑)

Exit Sub ' 正常流程退出,避免进入错误处理块
ErrorHandler:
    If Err.Number = 3022 Then
        MsgBox Me.CoNmtxt & "/" & Me.FrnNmtxt & "/" & Me.DptNmtxt & vbCrLf & _
               "该记录已存在" & vbCrLf & _
               "请使用【董事编辑表单】来录入或修改" & vbCrLf & _
               "董事姓名和邮箱", vbInformation, "⚠️ 新增董事错误 ⚠️"
    Else
        MsgBox "发生错误:" & vbCrLf & "错误 " & Err.Number & ": " & Err.Description
    End If
    Err.Clear ' 清除错误状态
    Resume Next ' 可根据需求替换为Resume回到错误行,或直接结束

内容的提问来源于stack exchange,提问作者Mikel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:42:52