Tipps "n" Tricks
Anwender-Software - Access

Last Update: 24. Dezember 2001/Webmaster

Schaltflächen zum Abbrechen von Formulareingaben
Thema: Access 97, 2000 und 2002
Bei der Änderung von Daten in Formularen geht Access einen, vor allem für unerfahrene Anwender ungewohnten Weg: Beim Wechsel des Datensatzes werden Änderungen ohne Rückfrage automatisch gespeichert, eine augenfällige Möglichkeit, begonnene Änderungen abzubrechen, gibt es anscheinend nicht. Zwar lassen sich Änderungen im Formular über die Esc-Taste oder mehrmaligen Aufruf von Bearbeiten-Rückgängig zurücknehmen, Anwender mit wenig Erfahrung werden diese Funktionen aber nicht kennen. Angebracht wäre hier eine auffällige Abbrechen-Schaltfläche, die dem Anwender als "Notausstieg" dient, alle Änderungen zurücknimmt und das Formular schliesst:
  • Öffnen Sie das betreffende Formular im Entwurfsmodus.
  • Legen Sie im Formularfuss eine Schaltfläche mit der Bezeichnung "Abbrechen" (Name= btnAbbrechen) an und setzen Sie die Textfarbe auf "Rot" und die Schriftbreite auf "Fett".
  • Stellen Sie die Eigenschaft "Beim Klicken" auf "[Ereignisprozedur]" ein und klicken Sie auf die Schaltfläche mit den drei kleinen Punkten, um den VBA-Editor zu öffnen.
  • Geben Sie folgende Anweisungen ein:
Private Sub btnAbbrechen_Click()

  On Error Resume Next
  DoCmd.SetWarnings False
  DoCmd.RunCommand acCmdUndo
  DoCmd.SetWarnings True
  DoCmd.Close acForm, Me.Name, acSavePrompt

End Sub
  • Schliessen Sie den VBA-Editor und lassen Sie das Formular anzeigen, um die Schaltfläche zu testen. Ändern Sie einige Feldinhalte und klicken Sie dann auf \Menue("Abbrechen"). Wenn Sie das Formular anschliessend noch einmal öffnen und den betreffenden Datensatz prüfen, werden Sie sehen, dass die Änderungen wie gewünscht verworfen wurden.
Möchten Sie vor dem Verwerfen der Änderungen und dem Schliessen des Formulars noch eine Sicherheitsabfrage einbauen, geben Sie statt der oben gezeigten VBA-Anweisungen die folgende Prozedur ein:

Private Sub btnAbbrechen_Click()
  Dim strMsg As String

  On Error Resume Next
  strMsg = "Möchten Sie die Änderungen verwerfen?"
  If MsgBox(strMsg, vbYesNo + vbQuestion, "Abbrechen:") _
  <> vbYes Then Exit Sub
  DoCmd.SetWarnings False
  DoCmd.RunCommand acCmdUndo
  DoCmd.SetWarnings True
  DoCmd.Close acForm, Me.Name, acSavePrompt

End Sub


Beim Einsatz dieser Prozedur wird dem Anwender zunächst eine Sicherheitsabfrage angezeigt und erst nach einem Klick auf Ja das Formular nach dem Verwerfen der Änderungen verlassen.

 

Tipps "n" Tricks
Anwender-Software - Access