2016-04-24 17 views
0

Ich habe einen Code in Before_Update Ereignis, um Änderungen zu speichern. Dazu benutze ich Msgbox mit YesNoCancel Prompt, aber ich kann das Schließen des Formulars nicht verhindern, wenn ich auf Abbrechen klicke. Hier ist ein kurzes Beispiel meines Codes:Zugriff auf VBA - Schließen verhindern Formular

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 

Jeder Weg, um das zu beheben?

Antwort

1

Sie müssen den Rückgabewert von MsgBox speichern, proceeed dann entsprechend:

 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

Dank, haben gar nicht gedacht. Es funktioniert jetzt. – LuckyLuke82

Verwandte Themen