Datenzugriffsobjekte
Transaktionen
Wie kann ich komplexe Transaktionen sicher abwickeln? Wie kann ich Veränderungen an Recordset-Objekten rückgängig machen?
Mit Transaktionen können auch Löschvorgänge rückgängig gemacht werden
Public Sub KundenLöschen()
Dim rstKunden As Recordset
Set rstKunden= CurrentDB.OpenRecordset("Kunden")
DBEngine.Workspaces(0).BeginTrans
Do
rstKunden.FindFirst "Umsatz < 10000"
If rstKunden.NoMatch Then Exit Do
rstKunden.Delete
Loop
If MsgBox("Kunden mit kleinem Umsatz löschen?", vbOKCancel) = vbOkThen
DBEngine.Workspaces(0).CommitTrans
Else
DBEngine.Workspaces(0).Rollback
End If
End SubEnd SubGerade in Mehrbenutzer-Umgebungen kann es bei komplexen Schreibvorgängen in mehreren Tabellen oder sogar Datenbanken vorkommen, dass während dieses Vorgangs die gesamte Transaktion rückgängig gemacht werden muss, weil beispielsweise ein anderer Benutzer einen bestimmten Datensatz gesperrt hat. Um solche Vorgänge sicherer zu gestalten, verwendet man Transaktionen.
Diese Seite ist für Mitglieder von akademie.de reserviert.
Möchten Sie die Mitgliedschaft 14 Tage kostenlos testen und den Beitrag komplett lesen?
Oder möchten Sie zunächst mehr über diesen Beitrag erfahren und die Leseproben sehen?
Ich bin bereits Mitglied