2016-04-24 70 views
0

我在Before_Update事件中有一個代碼,用於保存更改。爲此,我在YesNoCancel提示框中使用Msgbox,但是當我點擊取消按鈕時,我無法阻止關閉窗體。這裏是我的代碼的簡短示例:訪問VBA - 防止關閉表格

Option Compare Database 
Public SomeVariable As Integer 

    Private Sub Form_BeforeUpdate(Cancel As Integer) 

      If MsgBox("There has been done some changes. You wish to save these changes ?", vbQuestion + vbYesNoCancel, "Save changes") = vbYes Then 

       'do nothing and Access saves automatically 

      ElseIf vbNo Then 
       DoCmd.RunCommand acCmdUndo 

      ElseIf vbCancel Then 
       SomeVariable = 1 
      End If 

    End Sub 

Private Sub Form_Unload(Cancel As Integer) 

If SomeVariable = 1 Then 
SomeVariable=0 
Cancel = True 
End If 

End Sub 

有什麼辦法解決這個問題?

回答

1

必須保存從MSGBOX的返回值,然後相應地proceeed:

 Dim vbAnswer 
     vbAnswer= MsgBox("There has been done some changes. You wish to save these changes ?", vbQuestion + vbYesNoCancel, "Save changes") 

     if vbAnswer = vbYes Then 

      'do nothing and Access saves automatically 

     ElseIf vbAnswer= vbNo Then 
       .... 
     ElseIf vbAnswer= vbCancel Then 
+0

謝謝,沒有想到這一點。它現在有效。 – LuckyLuke82