如何防止在尝试关闭表单时填充Microsoft Access错误消息?

时间:2018-03-26 17:04:06

标签: forms ms-access error-handling popup

我在Access中使用了一堆下拉菜单框。如果我从列表中选择一个值,然后改变主意并再次将其留空,请单击“关闭”,我总是收到此消息:

the data has been changed

Another User edited this record and saved the changes 
before you attempted to save your changes

Re-edit the record.

我在后台运行

时有3个不同的宏

交易类型
贷款例外评论
更新标志

我认为这些宏不会影响到任何错误。但我可以写一些东西,以便它捕获此错误消息并忽略它,并在我点击关闭时继续关闭?

VBA的主要形式有以下代码:

Private Sub Close_Click()
 Me.FrmJobDetails.Form.Requery
 Me.subform1.Form.Requery

If Me.FrmJobDetails.Form.Dirty = True Then 'what I tried adding
 me.FrmJobDetails.Form.Dirty = False 'what I tried adding
End If
 If Me.subform1.Form.Dirty = True Then 'what I tried adding
 me.subform1.Form.Dirty = False 'what I tried adding
End If
    DoCmd.SetWarnings (WarningsOff)
    DoCmd.Save

    entry
    DoCmd.OpenQuery ("aqrySBORequestSiteDetail"), , acReadOnly


    DoCmd.Close
    DoCmd.SetWarnings (WarningsOn)

End Sub

在该代码中,注释“我尝试添加的内容”是我认为可以防止发生错误消息的内容。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我用它来处理 Write Conflict 错误(7787)。当发生写入冲突时,第一次更改将通过,第二次更改将被丢弃。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    If DataErr = 7787 Then
        Response = acDataErrContinue
        On Error Resume Next
        With Me.Recordset
            .MovePrevious
            .MoveNext
        End With
        On Error GoTo 0
    End If
End Sub

答案 1 :(得分:1)

嗯......跳过它:

On Error Resume Next

在宏的顶部将跳过任何有错误的命令。

这不会解决原因,但会停止弹出错误。