vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Rainer
Datum: 14.06.13 19:15

Hallo,
ich habe folgendes Problem:
Auf einem Datenserver ist eine mit Access 2003 erzeugte Datenbank abgelegt. Zu dieser Datenbank wurde eine im gleichen Ordner abgelegte MDW-Datei generiert, die für eine Arbeitsgruppe mit drei Benutzern den Datenbankzugriff regelt. Die Benutzer haben die Rechte für das Lesen, Aktualisieren, Einfügen und Löschen von Daten in allen Tabellen der Datenbank. Sie wurden als Gruppenrechte zugeordnet. Außerdem wurde die Mehrbenutzerumgebung in Access (Extras/Optionen - Register "Weitere") auf "Sperren des zu bearbeitenden Datensatzes" und "Freigeben für den Standardöffnungsmodus" gesetzt.
Die Nutzer arbeiten von drei Desktop-PC im lokalen Netz mit der Datenbank, wobei auf jedem dieser PC Access 2003 installiert ist und sie sich damit mit ihren jeweiligen Benutzernamen anmelden. Zur Aufnahme neuer Datensätze in die Datenbank steht ein Bearbeitungsformular mit einem Unterformular zur Verfügung.
Solange nur ein Benutzer mit der Datenbank arbeitet ist alles "Tutti". Problematisch wird es in dem Augenblick, wenn sich ein zweiter Benutzer für die Datenbank anmeldet und das Bearbeitungsformular öffnet. Beginnen beide mit dem Neuanlegen eines Datensatzes so kommt es zu einem Konflikt, der mit der Einrichtung der Arbeitsgruppe und ihrer Benutzer eigentlich vermieden werden soll. Der erste Benutzer öffnet einen neuen Datensatz und beginnt damit seine Daten mit dem Bearbeitungsformular in diesem abzulegen. Kommt nun der zweite Benutzer hinzu und will ebenfalls einen neuen Datensatz mit dem gleichen Formular anlegen, so wird kein weiterer neuer Datensatz in der betreffenden Tabelle angelegt sondern die Daten des zweiten Benutzers überschreiben die Daten des ersten Benutzers in dem von ihm angelegten Datensatz. Nach kurzer Zeit erhält der erste Benutzer in seinem Bearbeitungsformular in allen seinen Felder den Hinweis, dass seine Daten gelöscht wurden ("#Gelöscht!#").
Ich gehe davon aus, dass Access in der Lage ist einen solchen Konflikt zu vermeiden. Also kann es sich nur um eine fehlerhafte Anwendung der möglichen Einstellungen handeln. Die Frage ist nur um welche Einstellung es sich handelt. Es wäre gut und hilfreich, wenn es jemanden gibt, der mir einen entsprechenden Hinweis geben kann.
Ansonsten wünsche ich ein schönes Wochenende und harre auf Eure Tipps.
Gruß, Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Franki
Datum: 15.06.13 03:01

Hallo Rainer,

das ist konzeptioniell irgenwie seltsam.

Denn die Leute arbeiten ja auf ihren eigenen PCs. Da können 100 Leute anfangen in einem Formular (auf dem jeweils eigenen PC) einen neuen Datensatz einzugeben erst wenn sie damit fertig sind wird dieser mit den Daten in der DB gespeichert durch die entsprechende Aktion des Users. (Schaltfläche Speichern oder was auch immer)

Und auch dann erst sollte die Kontrolle greifen. Vorher bringt das nichts, das Formular zur Dateneingabe bei neuen Datensätzen sollte keinen Bedingungen / Einschränkungen unterliegen.

Anders sieht das beim bearbeiten (und vorherigem Aufruf) von schon bestehendenen Datensätzen aus, da muss man natürlich verhindern, dass das mehrere User gleichzeitig machen können. (Und auch eine Zeit- bzw. Plausibilitätskontrolle einbauen)

Wie sieht denn dein Programmcode aus? Poste doch mal die wichtigen Details, vielleicht bekommst du dann konkretere Antworten.

Gruß
Frank

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Rainer
Datum: 15.06.13 12:03

Hallo Frank,
Dank für Deine Antwort. Programmiert wurde bei dieser Lösung nichts. Es wird nur mit Abfragen, Makros, Berichte und Formulare gearbeitet.
Ich glaube aber die Ursache gefunden zu haben: Nicht an allen PC wurde für Access die Extras-Optionen-Einstellung zur Sperrung bearbeiteter Datensätze aktiviert. Überprüfen kann ich es erst am Montag. Dann gebe ich noch eine Info dazu.
Nochmals Dank und ein schönes Wochenende.
Gruß, Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Manfred X
Datum: 15.06.13 17:27

Hallo!

Ich würde auf "Nummer Sicher" gehen und in den Tabellen z.B. eine
boolsche "In Progress"-Spalte einfügen.
Während eines Schreibzugriffs wird diese Spalte "true" gesetzt. Bei
allen Schreibabfragen wird dieser Wert geprüft und falls er bereits
auf "true" steht, wird der Zugriff verweigert.
Bei Lesezugriffen auf einen "true"-gesetzten Satz kann man eine Warnung
anzeigen.

MfG
Manfred




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Franki
Datum: 15.06.13 23:53

Hallo Manfred,

genau solch eine Kontrolle ist notwendig bei nicht "multiuserfähigen" Datenbanken wie Access.

Aber seit Win 95 / Access97 hat es sich ja als prkaktikable Praxis erwiesen die Kontrolle nicht nur über Ja/Nein zu regeln sondern über eine Zeitangabe und ein Ablaufdatum. Denn damals war es "üblich", dass Rechner mal abstürzen und dann bringt boolean Wert der in der DB steht nicht mehr.

Für solche Sachen baucht man sowohl einen Status als auch einen Zeitraum für den dieser gültig ist. Vermeiden kann man solche Sachen indem man den Status zur DB, die Eingaben die die User machen nicht innerhalb der eigenen Software regelt. Es ist da wesentlich komfortabler das durch eigen Programmierung in VB zu machen als sich auf die Mechanismen der DB zu verlassen wenn diese die nicht bietet bei Standardnutzung.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrbenutzerarbeit an einer Access-Datenbank 
Autor: Rainer
Datum: 28.06.13 10:37

Hallo,
es hat lange gedauert, aber nun meine abschließende Aussage zum Problem:
Derjenige, für den ich meine Anfrage gestellt habe, hat mir nunmehr mitgeteilt, dass er mit den verschiedensten Lösungsansätzen das Problem nicht lösen konnte. Er hat sich also entschlossen, seine fehlerhafte Lösung zu verwerfen und neu anzupacken.
Ich bedanke mich für Eure Hilfe und Geduld.
Rainer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel