Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

ADO-Verbindung / Exklusivzugriff

ADO-Verbindung / Exklusivzugriff
26.09.2019 13:14:19
Hans-Jürgen
Hallo Wissende,
ich bin noch bei meiner Excel-Anwendung (Frontend), mit dem eine Access-Datenbank verwaltet wird. Das Frontend selbst ist schreibgeschützt, die Anwender senden nur kurze "Befehle" (Selects/Update/Insert)
Selbst wenn zwei Anwender nahezu zeitlich an die Datenbank senden, ist das im Prinzip kein Problem.
Der erste Mitarbeiter allerdings, der sich morgens (=anderes Datum) anmeldet, sorgt für die Ausführung eines längeren Scripts, diverse Aufräumarbeiten in der Datenbank und die Komprimierung. Das läuft ca. 1-2 Minuten (wir haben ein lahmes Netzwerk).
Ich möchte nun vermeiden, dass in dieser Zeit ein anderer Mitarbeiter diesen Tagesstart durchführt bzw. mir sparen, die Abfrage programmäßig abzufangen.
Nun zur Frage: Gibt es die Möglichkeit, die Verbindung auf "Exklusiv" zu stellen?
Und wenn ja: Kann man einbauen, dass das System (ohne dass der Anwender das merkt) nach einer Zeit von ca. 10 Sekunden es nochmal probiert?
Hier der ("geklaute") Code, mit dem ich die Verbindung herstelle:
          Set objADODBConnect = New ADODB.Connection
If objADODBConnect Is Nothing Then
With objADODBConnect
.CursorLocation = adUseClient
.Mode = adModeShareDenyNone
.Provider = strDBProvider
.ConnectionString = "Data Source=" & strDBPfad & strDBName & strDBEndung
.Properties("Jet OLEDB:Database Password") = strPasswort
.Open
End With
End If
Vielen Dank!
Hans-Jürgen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ADO-Verbindung / Exklusivzugriff
26.09.2019 18:56:19
ChrisL
Hi Hans-Jürgen
Ich denke du müsstest auf der anderen Seite (bei deinem 2 min. Script) ansetzen.
Grundsätzlich gäbe es das Mittel Lock optimistic/pessimistic (oft reicht schon optimistic), was sich gemäss meinem Verständnis jedoch auf die Bearbeitung je Datensatz bezieht. Ob/wie bei einer Datenkomprimierung gesperrt wird, kann ich spontan auch nicht sagen.
Die Notwendigkeit einer permanenten Totalsperre würde ich noch einmal hinterfragen, aber falls zwingend, könntest du eine Dummy-Datei Open For Output/Input erzeugen, die du nach Ablauf des Scripts wieder löschst (Kill).
Dann kramst du dir die VBA-Funktion FileExists () aus dem Archiv und "loopst" (Schleife) bis die Bedingung FileExists() = False erfüllt ist.
cu
Chris
Anzeige
AW: ADO-Verbindung / Exklusivzugriff
27.09.2019 07:10:10
Hans-Jürgen
Hallo Chris,
vielen Dank, das sind schon interessante Ansätze.
Das mit dem "loopen" bis FileExists = false kann man ja auch mit der *.laccdb machen. Diese Datei besteht ja nur in der Zeit der Datenbankabfragen. Das werde ich mal testen.
VG
Hans-Jürgen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige