2016-06-08 50 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