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 Schaltflaeche_Speichern, Beschriftung "Speichern".
  • Hinterlege im Click-Ereignis der Schaltfläche folgenden Code:

Möglichkeit 1:

Private Sub Schaltflaeche_Speichern_Click()
 
   RunCommand acCmdSaveRecord
 
End Sub

Möglichkeit 2:

Private Sub Schaltflaeche_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 Schaltflaeche_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 Schaltflaeche_Loeschen_Click()
 
   On Error GoTo Err_DatensatzLoeschen
 
   RunCommand acCmdDeleteRecord
 
Exit_DatensatzLoeschen:
   Exit Sub
 
Err_DatensatzLoeschen:
 
   '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_DatensatzLoeschen
 
End Sub


Neuen Datensatz anlegen

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

oder auch

Private Sub Schaltflaeche_Neu_Click()
 
   RunCommand acCmdRecordsGoToNew
 
End Sub