【问题标题】:Suppress Error 3021: No Current Record in Access抑制错误 3021:Access 中没有当前记录
【发布时间】:2019-01-21 16:31:11
【问题描述】:

我有一个带有附加记录集的 Access 表单。标题中的控件调整记录集过滤器。有时这些过滤器会返回一个空记录集,这没关系。

但是,当记录集为空并且用户单击标题中的任何控件(假设再次更改过滤器)时,Access 会弹出一个错误框,显示 3021 - 无当前记录。

我无法在代码中找到此错误的来源 - 但是我在表单上添加了一个事件触发器 - 表单本身的 onError。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    MsgBox "caught error: " & DataErr
End Sub

这行得通!但我曾期望这个子替换 Access 错误。相反,我的代码被执行,然后弹出原始错误消息!

我知道有很多关于消除此错误的问题,但大多数都与采取 VBA 操作有关 - 这是关于在没有触发其他 VBA 时消除错误。有没有办法让 Form_Error 子不显示弹出窗口?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    简单的解决方案是在表单错误事件中使用响应参数。将其设置为 acDataErrContinue 告诉它继续并忽略错误。

    您可以在doc page 上查看更多示例。

    【讨论】:

    • acdataerrorcontinue 未被识别为系统变量......试图找出它是否在我需要的参考或其他问题中来测试它。
    • 有趣。这个对我有用。你打算如何分配它?
    • 我正在使用我认为包含所有 ac* 前缀常量的参考“Microsoft Access 16.0 Object Library”
    • acDataErrorContinue=0 的值,所以我正在使用它并且它有效。谢谢!
    猜你喜欢
    • 2017-04-16
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多