Access Anfänger: Datensatz speichern, abbrechen, löschen, neu anlegen

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte in einem Formular jeweils eine Schaltfläche anlegen, um

  1. die Änderungen an einem Datensatz zu speichern
  2. die Änderungen an einem Datensatz zu verwerfen (Bearbeitung abbrechen)
  3. einen Datensatz zu löschen
  4. einen neuen Datensatz anzulegen


Datensatz speichern

  • Erstelle eine Schaltfläche_Speichern, Beschriftung "Speichern".
  • Hinterlege im Click-Ereignis der Schaltfläche folgenden Code:

Möglichkeit 1:

Private Sub Schaltfläche_Speichern_Click()
 
 DoCmd.RunCommand acCmdSaveRecord
 
End Sub

Möglichkeit 2:

Private Sub Schaltfläche_Speichern_Click()
 
 Me.Dirty = False
 
End Sub


Bearbeitung abbrechen, Änderungen verwerfen

  • Erstelle eine Schaltfläche_Abbrechen, Beschriftung "Abbrechen".
  • Hinterlege im Click-Ereignis der Schaltfläche folgenden Code:
Private Sub Schaltfläche_Abbrechen_Click()
 
 Me.Undo
 
End Sub
  • Änderungen an einem Unterformular können nicht direkt vom Hauptformular aus (außer mit aufwändigem Code) rückgängig gemacht werden.
  • Um Änderungen an einem Unterformular rückgängig zu machen, kann das BeforeUpdate-Ereignis des Unterformulars verwendet werden.
Private Sub Form_BeforeUpdate(Cancel As Integer)
 
 If MsgBox("Änderungen am Unterformular speichern?", vbQuestion + vbYesNo) = vbNo Then
 
    Me.Undo
    Cancel = True
 
 End If
 
End Sub
Wiki hinweis.png Hinweis: Änderungen an einem Datensatz können auch durch das Drücken der ESC-Taste rückgängig gemacht werden.


Datensatz löschen

  • Erstelle eine Schaltfläche_Löschen, Beschriftung "Datensatz löschen".
  • Hinterlege im Click-Ereignis der Schaltfläche folgenden Code:
Private Sub Schaltfläche_Löschen_Click()
 
 On Error GoTo Err_DatensatzLöschen
 
 DoCmd.RunCommand acCmdDeleteRecord
 
Exit_DatensatzLöschen:
Exit Sub
 
Err_DatensatzLöschen:
 
 'Fehler 2501 abfangen, wird bei Abbrechen ausgelöst
 If Err.Number <> 2501 Then
   MsgBox "Laufzeitfehler '" & Err.Number & "':" & vbCrLf & vbCrLf & Err.Description
 End If
 
 Resume Exit_DatensatzLöschen
 
End Sub


Neuen Datensatz anlegen

  • Erstelle eine Schaltfläche_Neu, Beschriftung "Neu".
  • Hinterlege im Click-Ereignis der Schaltfläche folgenden Code:
Private Sub Schaltfläche_Neu_Click()
 
 DoCmd.GoToRecord , , acNewRec
 
End Sub