【发布时间】:2014-11-17 14:01:52
【问题描述】:
我已经开发了一个表单,我想在用户离开修改后的记录之前提示他们保存更改。
如果用户试图离开,我希望出现一个提示,询问他们是否希望保存更改,然后他们可以选择“是”或“否”。
我被告知Before Update 事件是我需要关注的事件,但我不断收到“您输入的更新前的表达式,因为事件属性设置产生了以下错误”消息。
这些是我在遇到错误之前采取的步骤:
- 将视图更改为表单视图
- 通过表单在记录中的任意位置进行更改
- 尝试通过我放入表单中的导航按钮导航离开表单(如果没有进行任何更改,它工作正常,但如果进行了单个更改,则无法执行任何操作)
- 什么都没有发生,所以我恢复到设计视图,以接收以下错误通知
- 我按确定,然后收到此消息:
然后我回到一号广场。
此外,自从出现此问题以来,任何条件格式都已完全停止工作;我不确定这两者是否有联系,但认为值得一提。
任何想法如何实现(理想情况下没有错误)?不幸的是,我无法发布我的系统,因为它处理高度机密的数据。
更新:
我尝试了各种我修改过的代码,但都无济于事。目前,我已经完全删除了任何此类代码,但我过去尝试过的代码是这样的:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
On Error GoTo Err_BeforeUpdate
If Me.Dirty Then
If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
"Save Record") = vbNo Then
Me.undo
End If
End If
Exit_BeforeUpdate:
Exit Sub
Err_BeforeUpdate:
MsgBox Err.Number & " " & Err.Description
Resume Exit_BeforeUpdate
End Sub
【问题讨论】:
-
请贴出代码。听起来你完全错了。
-
问题已更新 - 有什么想法吗?
-
在 On Error GoTo... 行的代码中放置一个代码中断,然后当代码中断并突出显示该行时,重复按 F8(慢慢地!)直到您收到消息。这将准确地告诉你它不喜欢哪一行代码。发布那行代码和你得到的确切错误,我们会看看是否有什么东西跳出来。
-
感谢您的建议;我已经在“On Error...”行设置了代码中断,但不幸的是,当我调试时,它要求我运行一个宏(我没有),因此当我按 F8 时,什么也没有发生。
-
你最近有没有压缩&修复和反编译过?我希望您不打算使用带有此想法的子表单。 MS Access 的默认设置是保存,停止保存需要做很多工作,通常你需要一个未绑定的表单。
标签: ms-access vba beforeupdate