Kapitel 41
Einsatz in Mehrbenutzerumgebungen
878
Für jedes Formular müssen Sie die Sperreinstellungen auf dem Eigenschaftenblatt (Registerblatt
Daten) zum Formular explizit bestimmen.
In den Access-Versionen vor Access 2000 sperrte Access nicht einzelne Datensätze, sondern Seiten
(pages) mit 2.048 Bytes, d.h., alle Datensätze, die sich auf der entsprechenden Seite befanden, wurden
gesperrt. Das hatte unter Umständen zur Folge, dass Datensätze unnötig gesperrt wurden, nur weil
sie sich zufällig auf einer gesperrten Seite befanden.
Durch Ausschalten der Option Datenbanken mit Sperrung auf Datensatzebene öffnen im Dialogfeld
aus Abbildg. 41.1 verhält sich Access 2007 beim Sperren wie die Vorgängerversionen.
Beachten Sie dabei, dass Memo- und OLE-Felder getrennt gespeichert und behandelt werden. Ihre
Größe zählt nicht bei der Berechnung, wie viele Datensätze auf eine Seite passen. Der Vorteil der seiten-
weisen Sperrung liegt in dem geringeren Verwaltungsaufwand und einem im Allgemeinen besseren
Leistungsverhältnis.
Alle Informationen, die Access zum Sperren von Datensätzen benötigt, werden in
einer Datei gespeichert, die den gleichen Namen wie die entsprechende Datenbank hat, aller-
dings mit der Endung LACCDB.
Access beherrscht auch die Transaktionsverarbeitung. Unter einer Transaktion ver-
steht man eine Datenbankoperation, bei der mehrere Teilschritte zusammengefasst sind. Bei der
Ausführung der Transaktion müssen entweder alle Teilschritte ausgeführt werden oder keiner der
Teilschritte. Als Beispiel lässt sich eine Kontobewegung auf der Bank nennen: Die Transaktion
besteht aus dem Vorgang Abbuchen vom einen Konto und Buchen auf das andere Konto. Nur
wenn beide Vorgänge funktioniert haben, ist das Geld transferiert.
Die Verfahren zur Datensatzsperrung
Im Folgenden möchten wir Ihnen die verschiedenen Verfahren zur Sperrung von Datensätzen vor-
stellen, die Access unterstützt. Übrigens werden für Snapshots prinzipiell keine Sperren gesetzt.
Optimistisches Sperren von Datensätzen
Wir möchten Ihnen zunächst das optimistische Sperren in Formularen und Programmen beschreiben.
Tabelle 41.1
Sperrverfahren
Sperrverfahren Beschreibung
Keine Sperrungen Es wird das optimistische Sperrverfahren verwendet, d.h., gesperrt wird
erst beim Speichern des Datensatzes.
Alle Datensätze Hierbei werden alle Datensätze gesperrt; dies bedeutet, dass andere
Benutzer keine Datensätze hinzufügen oder ändern, sondern nur lesend
darauf zugreifen können.
Bearbeiteter Datensatz Es wird das pessimistische Sperrverfahren verwendet, d.h., die Sperre für
einen Datensatz wird beim Editieren des Datensatzes gesetzt.
HINWEIS
HINWEIS
Die Verfahren zur Datensatzsperrung
879
Erstellung kompletter
Anwendungen
Optimistisches Sperren in Formularen
Beim optimistischen Sperren wird erst in dem Moment gesperrt, in dem ein geänderter Datensatz
geschrieben werden soll. Wurde der Datensatz in der Zwischenzeit, also in der Zeit zwischen dem
Beginn der Bearbeitung und dem Schreiben (Update) von einem anderen Benutzer geändert, erhal-
ten Sie bei der Arbeit mit einem Formular die folgende Mitteilung und Ihre Änderungen werden
ignoriert, sobald Sie das Dialogfeld bestätigen.
Abbildg. 41.2
Meldung bei Schreibkonflikt
Optimistisches Sperren in Programmen
Gesperrt wird erst zum Zeitpunkt des Befehls
Update
, wenn also die Änderungen am Datensatz in
die Tabelle geschrieben werden. Ist der Datensatz in der Zwischenzeit von einem anderen Benutzer
verändert worden oder ist er gesperrt, werden entsprechende Laufzeitfehler ausgelöst. Hier zuerst
die ADO-Variante:
In einem DAO-Programm wird das optimistische Sperren durch die Eigenschaft
LockEdits = False
eingeschaltet.
Sub ADO_SperrTestOptimistisch()
Dim conn As ADODB.Connection
Dim rst As New ADODB.Recordset
Set conn = CurrentProject.Connection
' Optimistisch sperren
rst.Open "tblFilme", ActiveConnection:=conn, _
LockType:=adLockOptimistic
On Error GoTo err_SperrTest
rst!Filmtitel = "Krass"
' Jetzt wird gesperrt
rst.Update
exit_SperrTest:
rst.Close
Exit Sub
err_SperrTest:
MsgBox "Fehler: " & Err.Number & ": " & Err.Description
Resume exit_SperrTest
End Sub
Kapitel 41
Einsatz in Mehrbenutzerumgebungen
880
Pessimistisches Sperren von Datensätzen
Beim pessimistischen Sperren wird ein Datensatz in dem Moment gesperrt, in dem die Bearbeitung
beginnt.
Pessimistisches Sperren von Formularen
Das pessimistische Sperren wird auf dem Eigenschaftenblatt des Formulars mit der Option Bearbei-
teter Datensatz als Einstellung für das Sperrverhalten eingeschaltet.
In unserem Beispiel in Abbildg. 41.3 hat ein anderer Benutzer den Datensatz des Films »Verrückt
nach Mary« pessimistisch gesperrt. Sie können keine Änderungen vornehmen. Access zeigt dies
durch das Sperrzeichen im Datensatzmarkierer an.
Einer der Nachteile des pessimistischen Sperrens besteht darin, dass eine Sperre zeitlich sehr lange
gesetzt bleiben kann. Beginnt beispielsweise ein Anwender die Änderung eines Datensatzes und
wird dann für längere Zeit aus dem Raum gerufen, so bleibt die Sperre bestehen, bis der Bearbei-
tungsvorgang abgebrochen oder gespeichert wird.
Sub DAO_OptimistischesSperren()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("tblFilme")
' Optimistisch sperren
rst.LockEdits = False
On Error GoTo err_SperrTest
rst.Edit
' ...
rst!Filmtitel = "Krass"
' ...
' Jetzt wird gesperrt
rst.Update
exit_SperrTest:
rst.Close
Exit Sub
err_SperrTest:
MsgBox "Fehler: " & Err.Number & " »" & Err.Description & "«"
Resume exit_SperrTest
End Sub

Get Microsoft Office Access 2007 - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.