我在MS Access 2007上设置了数据库。 在Form属性上的BeforeUpdate选择中,我放置了以下宏:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("Changes have been made to this record." & vbCrLf & vbCrLf & "Do you want to save these changes?", vbYesNo, "Save?") = vbYes Then
DoCmd.Save
Else
DoCmd.RunCommand acCmdUndo
End If
End Sub
保存VBA后,Forms将按预期运行。 问题是:当Access关闭并重新打开时,表单不会询问是否需要保存(即不执行VBA代码)。请协助
如何使VBA代码保持不变?
答案 0 :(得分:1)
表单BeforeUpdate事件 未触发 ,除非 记录或任何控件的数据改变了。换句话说,如果您打开并关闭表单而不进行任何更改(手动或以编程方式),则永远不会触发事件。这可能解释了为什么这不是问你的选择。
如果您使用表单的记录选择器,则可以轻松识别是否会触发事件。如果记录选择器形成三角形到铅笔,则会触发偶数,否则不会触发,因为没有进行任何更改。
希望有所帮助。