禁止显示错误 3021:访问中没有当前记录



我有一个带有附加记录集的访问表单。 标头中的控件调整记录集筛选器。 有时,这些筛选器返回一个空记录集,这没关系。

但是,当记录集为空并且用户单击标头中的任何控件(假设再次更改筛选器)时,Access 会弹出一个错误框,其中包含"3021 - 无当前记录"。

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

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

那行得通! 但我原本以为这个子会替换访问错误。相反,我的代码被执行,并且之后弹出原始错误消息!

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

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

您可以在文档页面上查看更多示例。

最新更新