【发布时间】: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