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

、それに応じて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

関連する問題