Supportnet / Forum / Datenbanken
Aktualisierungsabfragen mit mehreren Benutzern
Frage
Hallo
Ich arbeite in einer Access Anwendung mit mehreren Tabellen. In den verschiedenen Tabellen "markiere" ich (über Formulare) verschiedene Datensätze mit einem Ja/Nein-Steuerelement. In einem Bericht fasse ich verschiedene Daten aus den markierten Datensätzen zusammen und drucke sie aus. Danach setze ich mit einer Aktualisierungsabfrage alle Felder wieder auf "Nein".
Das funktioniert wunderbar - wenn nur ein Benutzer das macht. Wenn über das Netzwerk mehrere Benutzer dies gleichzeitig machen, verändern sich dieses laufend die Ja/Nein-Steuerelemente und es klappt nicht mehr.
Hat mir jemand einen guten Tip wie mehrere Benutzer gleichzeitig damit arbeiten können? Merci im voraus!
Antwort 1 von oliverV
Hallo,
eine ungetestete Idee hätte ich anzubieten:
Bei der Mehrbenutzer-Umgebung hast du sicherlich eine Trennung in Frontend und Backend; das Backend dürfte zentral auf dem Server abliegen.
Der Lösungsansatz wäre eine temporäre Tabelle, die entweder lokal im Frontend jedes Benutzer abliegt (also nicht mit dem Backend verknüpft ist); oder alternativ eine zusätzliche Backend-DB auf jedem Client mit dieser Tabelle.
Beim Öffnen des Druck-Auswahl-Formulars kannst du alle Datensätze per Anfügeabfrage aus der Originaltabelle in die temp. Tabelle anfügen.
Die Datenherkunft für das Formular ist dann nicht mehr die original Tabelle, sondern die temp. Tabelle.
Hier kann jeder Benutzer nun seine gewünschten Datensätze mit der Checkbox markieren.
Nach dem Ausführen des Druckauftrags oder beim Schließen des Formulars musst du dann per Löschabfrage alle Datensätze aus der temp. Tabelle löschen (sodass bei der nächsten Formularöffnung wieder eine leere Tabelle vorhanden ist und wieder der aktuellste Datenbestand aus der Originaltabelle angefügt werden kann).
Nachteile:
Beim Formularöffnen und -schließen kann es zu Verzögerungen kommen (abhängig von der Anzahl der Datensätze).
Die Datenbank mit der temp. Tabelle wird sich "ausblähen", da laufend Datensätze angefügt und gelöscht werden.
Bei der Variante das die Tabelle im Frontend ist kann man dies durch die automatische Komprimierung der DB beim Schließen lösen.
Ist natürlich ziemlich aufwändig; es ist halt die Frage, wie oft der Konflikt durch den gleichzeitigen Zugriff zweier Benutzer in der Praxis passiert. Wenn dies im "erträglichen Rahmen" ist, würde ich sogar damit leben, aber das kannst nur du entscheiden.
Gruß + schönes WE
Oliver
eine ungetestete Idee hätte ich anzubieten:
Bei der Mehrbenutzer-Umgebung hast du sicherlich eine Trennung in Frontend und Backend; das Backend dürfte zentral auf dem Server abliegen.
Der Lösungsansatz wäre eine temporäre Tabelle, die entweder lokal im Frontend jedes Benutzer abliegt (also nicht mit dem Backend verknüpft ist); oder alternativ eine zusätzliche Backend-DB auf jedem Client mit dieser Tabelle.
Beim Öffnen des Druck-Auswahl-Formulars kannst du alle Datensätze per Anfügeabfrage aus der Originaltabelle in die temp. Tabelle anfügen.
Die Datenherkunft für das Formular ist dann nicht mehr die original Tabelle, sondern die temp. Tabelle.
Hier kann jeder Benutzer nun seine gewünschten Datensätze mit der Checkbox markieren.
Nach dem Ausführen des Druckauftrags oder beim Schließen des Formulars musst du dann per Löschabfrage alle Datensätze aus der temp. Tabelle löschen (sodass bei der nächsten Formularöffnung wieder eine leere Tabelle vorhanden ist und wieder der aktuellste Datenbestand aus der Originaltabelle angefügt werden kann).
Nachteile:
Beim Formularöffnen und -schließen kann es zu Verzögerungen kommen (abhängig von der Anzahl der Datensätze).
Die Datenbank mit der temp. Tabelle wird sich "ausblähen", da laufend Datensätze angefügt und gelöscht werden.
Bei der Variante das die Tabelle im Frontend ist kann man dies durch die automatische Komprimierung der DB beim Schließen lösen.
Ist natürlich ziemlich aufwändig; es ist halt die Frage, wie oft der Konflikt durch den gleichzeitigen Zugriff zweier Benutzer in der Praxis passiert. Wenn dies im "erträglichen Rahmen" ist, würde ich sogar damit leben, aber das kannst nur du entscheiden.
Gruß + schönes WE
Oliver

