2016-06-08 48 views
-1

在我的导航子窗体的卸载事件中我有以下代码。访问导航窗体,取消卸载事件

If MsgBox ("Changes have not been locked and will be lost. Do you wish to proceed?", vbYesNo) = vbNo Then 
    Cancel = True 
End If 

当用户点击父其他导航按钮中的一个形式,它呈现出是/否消息框,但在移动,关闭和清除活动窗体,不管你选择什么。是否可以取消点击导航按钮导致的导航?

+0

由于访问,只要你去另外一个保存的记录,我宁愿用'BeforeUpdate'事件比'卸载'事件。 –

+0

我在窗体上有一个按钮,通过存储过程手动保存记录,并使用未绑定文本框的值。卸载事件捕捉到更改尚未保存并提示用户的事实。 – Cloude

回答

0

它不清楚你在if语句外有什么,但看起来你只需要使用Exit Sub命令。这将让你彻底停止导航(如果这本身就是一个Sub),所以:

If MsgBox ("Changes have not been locked and will be lost. Do you wish to proceed?", vbYesNo) = vbNo Then 
    Exit Sub 
End If 
+0

这就是我在我的卸载事件中除了检查未保存更改(涉及的敏感信息,因此我没有包含它)的If语句以外的所有事情。在form_unload事件中使用Exit Sub不会取消它;无论如何,你的表单都会卸载。在这种情况下取​​消不起作用的原因是由于它是导航表单上的子表单。我只是简单地禁用了导航按钮,而现在还没有保存更改。 – Cloude