2016-04-24 72 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