Wie kann eine schreibgeschützte Datenverbindung zu MS Excel / Access aus MS Excel verhindern, dass die MS Access-Datei für die Bearbeitung gesperrt wird?

542
Pherdindy

Mein Anliegen ist, dass ich MS Excel verwende, um eine Datenverbindung mit mehreren MS Access / MS Excel-Dateien herzustellen, aber es ist kein Schreiben erforderlich. Die Datenverbindung wird nur für das Extrahieren von Daten verwendet. Die Benutzer, die in die Datenbank schreiben möchten, können dies jedoch nicht, da durch das Herstellen einer Datenverbindung die MS Access / MS Excel-Dateien für die Bearbeitung gesperrt werden. Gibt es eine Möglichkeit, eine schreibgeschützte Datenverbindung herzustellen, während andere Dateien bearbeiten und speichern können?

0

2 Antworten auf die Frage

0
harrymc

Was Sie verlangen, ist ein Widerspruch.

Das Beste, was Sie tun können, ist, zwei Kopien der Dateien aufzubewahren, eine schreibgeschützt und die andere aktualisierbar, wobei die schreibgeschützte Kopie regelmäßig aktualisiert wird, wenn sie nicht verwendet wird.

Wie aktualisiere ich sie unter der Bedingung, dass sie nicht verwendet wird? Ich verwende das Xcopy-Skript und den Task-Scheduler von Windows, um das Skript alle 4:30 auszuführen. Wenn jedoch die mit ihr verbundene Datei geöffnet ist, schlägt dies fehl Pherdindy vor 5 Jahren 0
Anstatt die Datei zu kopieren, können Sie die alte Datei umbenennen und in die neue kopieren. Das Umbenennen funktioniert auch dann, wenn die Datei verwendet wird. harrymc vor 5 Jahren 0
Ich brauche aber eine automatisierte Lösung. Gibt es eine Möglichkeit, dies zu tun, ohne die Dateien manuell umzubenennen? Pherdindy vor 5 Jahren 0
Sie können es dem Skript hinzufügen. harrymc vor 5 Jahren 0
Wenn ich also mit einer MS Access-Datei beispielsweise aus meiner MS Excel-Datei verbunden bin, kann ich die MS Access-Datei in einen anderen Namen umbenennen und dann die neuere MS Access-Datei einfügen. Was passiert, wenn ich die Datenverbindung erneuere? Wird es auf die neue Access-Datei aktualisiert, ohne dass die MS Excel-Datei neu gestartet werden muss? Pherdindy vor 5 Jahren 0
Diese Sequenz sollte funktionieren: Benutzer u1, der auf schreibgeschützte, schreibgeschützte, umbenannte und kopierte neue Version zugreift, schließt und öffnet die neue schreibgeschützte Version. Dies hängt von den Aktionen ab, die Access ausführt, die ich nicht verwende. Wenn eine schreibgeschützte Datei möglicherweise mehrere Tage geöffnet bleibt, das Skript jedoch täglich ausgeführt wird, benötigen Sie zum Umbenennen ein inkrementierendes Element, z. B. das Datum. harrymc vor 5 Jahren 0
0
Michael Frank

Je nachdem, wie Sie Ihre Datenlinks einrichten, sollten Sie die folgende Data-Link-Eigenschaft angeben können:

Teilen Verweigern

Durch diese Einstellung Share Deny Nonekönnen andere Benutzer die Access-Datenbankdatei im Vollmodus öffnen ReadWrite.

Wenn Sie bereits eine Verbindung haben, die Sie ändern möchten, können Sie die folgenden Schritte zum Hinzufügen Share Deny Noneder Verbindungszeichenfolge verwenden:

  • Öffnen Sie 'Vorhandene Verbindungen' und wählen Sie die zu ändernde Verbindung aus.
  • Klicken Sie auf 'Eigenschaften' und wechseln Sie zur Registerkarte 'Definition'.
  • Im Feld 'Verbindungszeichenfolge' müssen Sie den folgenden Wert hinzufügen / ändern:

Mode=Share Deny None;

Beispiel:

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin; Data Source=E:\Documents\Test.accdb;Mode=Share Deny None;Extended Properties=""; ... 
Das sieht vielversprechend aus. Werde es morgen ausprobieren. Pherdindy vor 5 Jahren 0
Wenn es hilfreich ist, habe ich dies zu Hause getestet und konnte eine Access-Datenbank in Excel importieren, die Datenbank in Access öffnen und einige Werte ändern, die Daten in Excel speichern und aktualisieren und die Aktualisierung der Tabelle mit den neuen Werten von Access überwachen. Michael Frank vor 5 Jahren 0
Das ist was ich brauche, obwohl Sie die `Data Link Properties` finden können? In den "Bestehenden Verbindungen" finde ich dafür keine Option. Pherdindy vor 5 Jahren 0
@Pherdindy Siehe meine Bearbeitung zur Antwort dafür. Michael Frank vor 5 Jahren 0
Vielen Dank. Dies löst die Hälfte meines Problems. Die andere Hälfte ist, dass wenn die MS Access-Datei verwendet wird, diese gesperrt ist und ich keine Datenverbindung von meiner MS Excel-Datei herstellen kann. Obwohl ich es in einer separaten Frage gestellt habe, weil es ein anderes Thema ist. Pherdindy vor 5 Jahren 0
Du meinst also schon, bevor die Verbindung hergestellt wird? Ich bin mir nicht sicher, ob es einen Weg gibt, leider ... Michael Frank vor 5 Jahren 0
Ja, da die Personen, die Eingaben in die MS Access-Datei vornehmen, die Datei möglicherweise irgendwo im Netzwerk geöffnet haben. Wenn es geöffnet ist, kann ich keine Datenverbindung von Excel herstellen. Ich warte, wenn jemand eine Antwort auf meine andere Frage hat, aber wenn dies nicht der Fall ist, müsste ich die Excel-Datei mithilfe eines Skripts speichern und schließen und die Access-Dateien an einen Ort im Netzwerk kopieren Wiederholen Sie das für ein Zeitintervall. Pherdindy vor 5 Jahren 0