Dtaenbank durch mehrere Nutzer gleichzeitig öffnen

Hallo zusammen,

ich habe in einer Datenbank eine Excel-Tabelle verknüpft. Bei einer Auswahl bestimmter Kriterien greift die Datenbank auf diese Exceltabelle zurück. In diesem Fall ist das Arbeiten mit der Datenbank durch andere Nutzer nicht mehr möglich. Ich vermute, dass dies etwas mit den Zugriffsrechten zu tun hat. kenn mich damit aber leider nicht aus.

Kann mir jemand weiterhelfen, wie ich das Problem lösen kann?

Viele Grüße von Beate

Moin, Beate,

ist das Arbeiten mit
der Datenbank durch andere Nutzer nicht mehr möglich.

das wird nicht an der Verknüpfung liegen, sondern an der Art, wie die DB geöffnet wird. Das sagst Du der DB mit Extras > Optionen > Weitere, dort der Standardöffnungsmodus - exklusiv oder freigegeben.

Sinnvoll ist freigegeben natürlich nur dann, wenn die Anwender keine Updates machen können.

Ach ja: Der genaue Text der Fehlermeldung ist immer hilfreich :wink:

Gruß Ralf

Hallo Ralph,

Vielen Dank für deine Antwort. Also unter den Optionen ist die DB als freigegeben eingestellt. Daran kann es also nicht liegen.

Folgende Fehlermeldung bekomme ich angezeigt:

„Laufzeitfehler 3051
Das Microsoft Jet-Datenbankmodul kann die Datei nicht öffnen. Sie ist bereits von einem anderen benutzer exclusiv geöffnet oder sie benötigen eine Berechtigung um die Daten zu lesen.“

An den Berechtigungen liegt es nicht, die sind vergeben. Ist ein anderer Nutzer in der DB, so kann ich auch die Excel-Datei separat nicht öffnen. Da kommt folgende Meldung: „Zugriff auf ‚Tabelle‘ verweigert.“ Auch da hab ich schon über Extras die Tabelle freigegeben. Was könnte noch die Ursache für das Problem sein und wie kann ich es lösen?

Viele Grüße von Beate

Moin, Beate,

Hallo Ralph,

f genügt :smile:

Was könnte noch die Ursache für das
Problem sein und wie kann ich es lösen?

immoment kämpfe ich mit meiner Installation, mir wird der Zugang zur Hilfe verweigert :frowning:

Versuch mal, die Datenbank im ReadOnly-Modus zu öffnen:

Dim Datenbank As DAO.Database
Set Datenbank = DBEngine.OpenDatabase("_Pfad zur Datenbank_", True, True)

Gruß Ralf

Muss ich das beim Öffnen des ersten Formulars eingeben?
Wenn ja, dann hat auch das keinen Erfolg. Hab ich schon probiert.

Muss ich das beim Öffnen des ersten Formulars eingeben?
Wenn ja, dann hat auch das keinen Erfolg. Hab ich schon
probiert.

Hallo,

vielleicht solltest Du erst mal genauer beschreiben, was Sache ist. Ist die DB in Frontend/Backend aufgeteilt? Falls ja, in welcher ist das Excel-Sheet verknüpft? Und WO liegt das FE?
Mit WAS kannst Du nicht mehr arbeiten? Mit der MDB-Datei oder mit der Excel-Datei?
Passiert das beim gleichzeitigen Arbeiten der verschiedenen User an der DB?
Wie und mit was wird in der MDB-Datei auf das verknüpfte Excel-Sheet zugegriffen?
Welche Access-Version benutzt Du?

Hallo,

vielleicht solltest Du erst mal genauer beschreiben, was Sache
ist. Ist die DB in Frontend/Backend aufgeteilt? Falls ja, in
welcher ist das Excel-Sheet verknüpft? Und WO liegt das FE?
Mit WAS kannst Du nicht mehr arbeiten? Mit der MDB-Datei oder
mit der Excel-Datei?
Passiert das beim gleichzeitigen Arbeiten der verschiedenen
User an der DB?
Wie und mit was wird in der MDB-Datei auf das verknüpfte
Excel-Sheet zugegriffen?
Welche Access-Version benutzt Du?

Hallo,

ich habe die DB aufgeteilt. In einer Tabelle befinden sich alle Tabellen und in der DB mit der ich arbeite die Abfragen, Formulare und Bereichte. Die Excel- Datei ist in der „HAupt“- DB verknüpft - geht ja nicht anders. Im Grunde kann ich bei mehreren Benutzern mit beiden Datein nicht arbeiten.

Mal konkreter:
Die DB wird mit einem Auswahlfeld geöffnet. Beim Ausführen der Suchkriterien und dem öffnen des Formulars greift eine Abfrage auf das entsprechende Excel-Sheet zu. Ab diesem Zeitpunkt kann kein anderer User mit der Datenbank arbeiten, da die Suchfunktion ja nicht mehr funktioniert. Das Problem liegt aber nicht bei der DB, sondern beim Excel-Sheet, denn ist jemand in der DB, so kann ich auch die Excel- Datei separat nicht mehr öffnen.

Ich glaube ich benutze Access 2000.

Ich hoffe, du kannst jetzt mehr damit anfangen.

Viele Grüße von Beate

HAllo,

naja, so ganz klar ist mir das bis auf die Aufteilung in BE und FE nicht…

Hat denn jeder(!) PC (d. h. jeder User) seine eigene FE-Datei?
Wie sind die Datensatzsperr-Optionen (der dB selber) und die entspr, Eigenschaften der Formualre eingestellt?
Was heißt „Die DB wird mit einem Auswahlfeld geöffnet“ ?

Daß das Excel-Sheet nicht mehr zugriffsfähig ist, nachdem ein Formular aus einem FE darauf zugreift, ist normal und seit A2002 (glaube ich) so gewollt. Es ist auch nicht möglich, seitdem den Inhalt der verknüpften Excel-Datei zu ändern.

Gruß
Franz

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

Also, die Datenbank liegt in einem Ordner auf einem Laufwerk, auf dass alle Nutzer zugreifen können. Die eine Datenbank heißt db_Adressen und die andere Datenbank heißt db_Adressen_Daten und liegt im gleichen Ordner wie die erste. Das heißt also, dass die DB nur einmal existiert und nicht jeder User sie auf seinem PC hat.

Die Datensatzsperr- Optionen und die Eigenschaften der Formulare sind standardmäßig eingestellt, daran habe ich nichts geändert.

Mit dem Auswahlfeld meinte ich nur ein Formular, in das bestimmte Suchkriterien eingegeben werden.

Wenn du sagst, dass dass das Excel-Sheet nicht mehr zugriffsfähig ist, dann wird das sicherlich das Problem sein. Kann man das nicht irgendwie umgehen? Ich will im dem Excelsheet ja nichts ändern, sondern nur die Daten lesen können.

Das ist eine ganz schön verzwickte Sache. Vielleicht hast du ja noch eine Lösung parat. Wäre super.

Schönen Abend noch und viele Grüße von Beate

Hallo zusammen,

da anscheinend keiner eine richtige Lösung für das Problem hat, möchte ich mal kurz erläutern, wie ich das ganze jetzt gelöst hab. Zwar ist es etwas umständlich, aber einfach und sicher.

Beim Öffnen der datenbank habe ich einen Befehl eingegeben, der auf der Festplatte (Laufwerk c:) einen Ordner erstellt und in diesen Ordner die entsprechende Excel- Datei hinein kopiert:

Private Sub Form_Open(Cancel As Integer)
Dim vdir, Pfad

Pfad = „C:\test“
vdir = Dir(Pfad, vbDirectory)
If vdir = „“ Then MkDir Pfad

FileCopy „P:\Z96_SAP\02_Datenexport\test.xls“, Pfad & „\test.xls“
End Sub

In der Datenbank ist nun die Exceldatei der Festplatte verknüpft und nicht die, die auf einem offiziellen Laufwerk liegt. Der Nutzer kann nun problemlos damit arbeiten.

Beim Schließen der Datenbank wird der Ordner wieder gelöscht, damit die Festplatte mit der großen Datei nicht belastet wird und bei erneutem Öffnen die Daten immer aktuell sind.

Private Sub Form_Close()
Dim Pfad As String
Dim oFSO As Object

Pfad = „C:\Materialstamm“

Set oFSO = CreateObject(„Scripting.FileSystemObject“)
If oFSO.FolderExists(Pfad) Then oFSO.DeleteFolder (Pfad)

Meiner Meinung nach funktioniert das richtig gut.
Trotzdem danke für eure hilfreichen Tipps und die ich bestimmt nicht auf die Lösung gekommen wäre.

Viele Grüße von Beate

Hallo Beate,

naja, was ist schon eine „richtige“ Lösung…? Sicher kannst Du die Sperrung der Excel-Datei umgehen, wenn mit einer Kopie gearbeitet wird. Solange das akzeptabel wegen der geringeren Aktualität ist, ist es ja ok. Insgesamt ist aber eine Datenbanklösung nicht optimal, wenn für eine DB-Tabelle ein Excel-Sheet als „Datencontainer“, in dem auch noch andere User herumfuhrwerken, benutzt wird.
Weiterhin ist die Ablage des FE’s auf dem Netzlaufwerk und Zugriff aller User auf diese eine Datei eigentlich nicht zu gebrauchen, soll deutlicher heißen, das ist Murks. Besser wäre, per Batch-Datei das FE vom Server-Verzeichnis jedesmal vor dem Aufruf der DB auf die jeweilige lokale Festplatte zu kopieren und dann erst zu lokal zu Starten. Damit umgeht man auch die Sperrungen, die die FE-Server-Datei (notgedrungen) erfährt.

Gruß
Franz

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