Satzsperrung Access97

Moin zusammen,

Access (97) sperrt Seitenweise und damit u.U. auch mehrere Datensätze auf einmal, das ist mir klar. Aber was tue ich wenn ich nun unbedingt die Sperrung einsetzen muß aber auf keinen Fall mehrere Datensätze locken darf. Access soll es schon bleiben, SQL Server oder sowas ist leider keine Lösung. Meine Idee solange Felder in den Satz zu packen bis nur ein Satz in der Page ist ist nicht wirklich professionell und nach 40 mal 255er-Textfeld (plus Standardwert) hatte ich dann auch keine Lust mehr :smile:.

Wer hat ne bessere Idee?

Dankeschön,

-(:smile: Oliver

Ich habe folgende Idee:

Lege eine neue Tabelle an, wir brauchen nur ein Feld - Datensatz.
Sperre im Formular alle Felder für Eingaben. Füge die Buttons ändern und speichern ein. Bei ändern,
*suche nach der Datensatznummer in der Tabelle, wenn gefunden
msgbox „Datensatz wird schon bearbeitet“
wenn nicht kannst du ja alle Felder mit VBA freigeben. Glaube me.[Feldname].Visible = true
bei speichern: alle daten speichern und die felder wieder sperren + den Eintrag aus der Tabelle wieder entfernen.

Das geht wahrscheinlich auch über die Aktionen des Formulars BeimBearbeiten und BeimSpeichern.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich habe folgende Idee:

Lege eine neue Tabelle an, wir brauchen nur ein Feld -
Datensatz.
Sperre im Formular alle Felder für Eingaben. Füge die Buttons
ändern und speichern ein. Bei ändern…

Keine so schlechte Idee, deutlich kreativer als meine Idee :smile:.
Werde das mal testen.

Thanx…
-(:smile: Oliver

Du solltest in der Sperr-Tabelle auch den aktiven Benutzer
hinterlegen. Wenn der Benutzer nämlich mal aus dem Programm
fliegt, wird der Datensatz in der Sperr-Tabelle nicht gelöscht,
somit kann dieser Datensatz nicht mehr bearbeitet werden.
Sobald Du also diesen Datensatz bearbeiten willst, solltest
Du nachsehen, ob dieser gesperrt ist, und falls er vom aktiven
User gesperrt ist, trotzdem zur Bearbeitung freigeben.

Gleichzeitig kannst Du diese Gesperrt-Tabelle auch dazu
benutzen, die zur Zeit bearbeiteten Datensätze auch in anderen
Programmteilen nicht zu benutzen, wie z.B. Kommissionierung
oder Abrechnungsläufe.

Alexander Bohl

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]