VBA für Access

Von: akademie.de Redaktion
Stand: 18. März 2008
2.75
(4)
Anmelden um Kommentare zu schreiben

Downloads zu diesem Beitrag

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 Sub

Gerade 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
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein