cim
Goto Top

Access Multiuser-fähig?

Wie kann eine Access-Datenbank mehrbenutzertauglich gemacht werden?

Hallo,
wahrscheinlich ernte ich jetzt schallendes Gelächter, aber trotzdem:

Ich habe ein Access-DB (Win2000, Access 2003), die für alle - naja, ich meine: viele - zugänglich auf einem Netzwerklaufwerk liegt. Also werden mehrere darauf zugreifen. Alsoalso gibt es Zugriffsverletzungen, Datensatzsperrungen, Fehlermeldungen, etc.

Mir ist schon klar, dass eine multiuserfähiges Access eigentlich paradox ist. Ja, ja, lacht Ihr nur...

Aber vielleicht weiß jemand, welche Tricks man anwenden kann, um einen mehrfachen Zugriff sicherzustellen.
Oder wie die Datei einfach für andere gesperrt wird, wenn sie geöffnet ist (z.B. wenn die db.ldb existiert, ist Öffnen von db.mdb nicht möglich).

Oder Ihr schüttelt mich mal ordentlich durch und schickt mich zu MySQL, Oracle, ...

(Ach ja, Access wurde gewählt, weil es schnell und einfach zu programmieren ist, Windows halt: schöne Buttons, bisserl klicken, bunt, einfach ziehen und schieben. Zuerst sollten nur eine Handvoll Mitarbeiter darauf zugreifen. Anschließend kriegt das mein Chef in'n Kopf und lässt sie für den gesamten Standort freigeben = 500 MA - aber in diesem Fall ist Office professional nicht wirklich professionell.)

Danke für Eure Hilfe!

Content-ID: 23416

Url: https://administrator.de/contentid/23416

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Biber
Biber 12.01.2006 um 16:03:04 Uhr
Goto Top
Moin, cim,

Such bitte in der Access-Hilfe den Begriff "RecordLocks".
Lies Dir die Seite durch.

Suche dann mal in wikipedia oder in Suchmaschinen zu "Locking-Mechanismen" (optimistic, pessimistic,...) , "Satzsperren" und "Deadlocks"
Dann hast Du in etwa einen Eindruck, was Du programmtechnisch abfangen musst.

Nicht mehr, nicht weniger.
handwerklich ist es nicht weiter aufregend, aber das Problem verstanden haben musst Du einmal.

HTH Biber
Atti58
Atti58 12.01.2006 um 16:06:45 Uhr
Goto Top
Prinzipiell ist Access2003 mehruserfähig und sollte ohne Fehlemeldungen laufen, wenn die Berechtigungen auf Dateisystemebene richtig gesetzt sind. Bei Änderung eines Datensatzes durch einen User erfolgt eigentlich eine Sperrung des Satzes für Änderungen durch einen anderen User.

Gruß

Atti.

PS: Access verfügt übrigens auch über Workgroup-Funktionaltität - Unter "Extras" -> "Sicherheit" ... aber rmache Dir besser vor dem Spielen drei Sicherheitskopien face-wink ...
16034
16034 12.01.2006 um 17:38:44 Uhr
Goto Top
Kann beiden nur zustimmen.

Auf die Schnelle:
Schau mal in der Datenbank unter Extras > Optionen > Weitere.
Beim Erstellen einer neuen DB ist da normalerweise ?Keine Sperrungen? als
?Standard bei Datensatzsperrungen? voreingestellt. Ist im Netz natürlich fatal.

mfg
verkehrsberuhigt
verkehrsberuhigt 12.01.2006 um 18:54:14 Uhr
Goto Top
Oder wie die Datei einfach für andere
gesperrt wird, wenn sie geöffnet ist
(z.B. wenn die db.ldb existiert, ist
Öffnen von db.mdb nicht möglich).

Jede ACCESS-DB lässt sich auch 'exklusiv öffnen'.
cim
cim 13.01.2006 um 08:20:15 Uhr
Goto Top
Guten Morgen,
vielen Dank für die Infos (vor allem für: "das Problem verstanden haben musst Du einmal" und "vor dem Spielen drei Sicherheitskopien").
Das hört sich doch optimistisch an. Ich werde mal sehen, wie weit ich komme, sonst melde ich mich wieder - wie immer.
Da mir aber jeder geholfen hat, gibt's für jeden 5 Sterne (falls das jemand überhaupt wissen möchte).
Schöne Grüße und schönes Wochenende (in ein paar Stunden)
cim
cim 16.01.2006 um 07:54:31 Uhr
Goto Top
Hallo noch mal,
also nach einigem Testen und Herumspielen der Einstellungen haben sich teilweise Fehler ergeben wie z.B.: "DB ist schreibgeschützt.", "This Recordset is not updateable", "Sie können diesem Objekt keinen Wert zuweisen.", "Sie können nicht zu dem angegebenen Datensatz springen."

"Teilweise", weil diese Meldungen manchmal auftreten, auch bei Usern, die bisher keine Probleme hatten, also auch Vollzugriff auf das Netzwerklaufwerk haben.

Meine Vermutung: Produziert jemand in der Access-DB einen Fehler (durch Bedienfehler, abschießen der DB...), übernimmt der nächste User diese, da u.U. die DB nicht einwandfrei beendet oder bearbeitet wurde.

Meine Lösung: (Schwanz einkneifen und die Fliege machen...)
...mit WSCRIPT über api-Routinen den Account herausfinden. Wer für die DB zum Bearbeiten eingeteilt ist, öffnet sie direkt in dem Netzwerkverzeichnis. Alle anderen kopieren diese per Script vor dem Öffnen auf die Festplatte.

Das ist nicht optimal, aber für den Übergang hoffentlich ok. Nebenbei werde ich nach "professionelleren" Lösungen suchen.

Danke noch mal und schöne Montagsgrüße aus dem Ländle!