【问题标题】:How to prevent an Microsoft Access error message from populating when trying to close a form?尝试关闭表单时如何防止填充 Microsoft Access 错误消息?
【发布时间】:2018-03-27 14:28:20
【问题描述】:

我在 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

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

有什么建议吗?

【问题讨论】:

  • 为什么要使用宏?这些宏到底在做什么?不,我认为您不能“捕捉”该警告并继续 - 这不是错误。最好找出正在编辑记录的内容并修改代码逻辑。这就是我必须做的。
  • @June7 每个下拉菜单中的宏只是为了让某些东西必须被选中并且不能留空。比如 If combo is Null Then MessageBox: Please Fill the deal type box StopAllMacros End If
  • 但是您在问题中说您希望能够留空并关闭。您的宏与此相矛盾。如果您知道并使用 VBA,为什么还要使用宏?我从不使用宏。证明你的理论宏不会引起问题 - 停用宏,看看你是否仍然收到警告。 entry 是什么?为什么要打开查询?编辑问题以提供更多信息。 DoCmd.Save 不保存记录,是保存编辑的对象。 Docmd.RunCommand acCmdSaveRecord 保存记录。

标签: forms ms-access error-handling popup


【解决方案1】:

我用它来处理 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

【讨论】:

    【解决方案2】:

    嗯...跳过它:

    On Error Resume Next
    

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

    这不会解决问题,但会停止弹出错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2021-05-30
      • 2018-06-14
      • 1970-01-01
      相关资源
      最近更新 更多