禁止出现错误3021:访问中无当前记录

时间:2019-01-21 16:31:11

标签: vba ms-access

我有一个带有附加记录集的Access表单。标头中的控件将调整记录集筛选器。有时这些过滤器会返回一个空的记录集,这是可以的。

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

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

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

那行得通!但是我曾期望该子程序替换访问错误。而是执行了我的代码,并在之后弹出原始错误消息!

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

1 个答案:

答案 0 :(得分:2)

简单的解决方案是在Form Error事件中使用Response参数。将其设置为acDataErrContinue会使其继续并忽略该错误。

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