Wie wechsle ich eine Access-Datenbank zwischen shared-und exclusive-mode?

Ich arbeite an einem Programm, dass die Bedürfnisse Bearbeiten Objekte in einer Access-Datenbank. Es läuft auch ein Unterprogramm (lange Geschichte), die versucht, Zugriff auf die zugrundeliegende JET-Datenbank während der Zugang noch hat es offene über ODBC.

Das problem ist, dass sobald ich beginnen Sie mit der Bearbeitung Form-Objekte mit VBA - zum Beispiel mithilfe der Anwendung.LoadFromText - Zugriff auf die Datenbank geändert zu EXKLUSIVER mode. Exklusive mode selbst ist schön, und ich weiß, warum es Sie braucht. Aber ich muss in der Lage sein, wechseln Sie wieder zu "shared" - Modus später, so dass ich mein Unterprogramm auf.

Ich habe beobachtet, dass, wenn Sie die Benutzeroberfläche öffnen Sie ein Formular im Design-Modus, Access-switches, die die Datenbank Exklusiv. (Sie können dies überprüfen, indem Sie versuchen, öffnen Sie es von einem anderen computer.) Aber wenn Sie dann schließen Sie den Formular-designer, den Zugang sofort schaltet er zurück in shared-Modus, das ist, was ich hoffe, für.

Gibt es eine Möglichkeit, schalten Sie es hin und her, mich mit VBA /COM-Aufrufe?

Ich weiß, ich kann Anruf-Anwendung.CloseCurrentDatabase (), gefolgt von OpenCurrentDatabase(), aber das schließt alle Fenster und das stört die Benutzeroberfläche, so ist es nicht ideal.

  • Ich fand einen workaround: öffnen Sie jedes Formular und schließen Sie es dann. Dies scheint zu verursachen, die Zugang zu überdenken, ob es benötigt die Datenbank Aufenthalt im exclusive-Modus oder nicht. Diese ist ziemlich gross, jedoch.
  • Ihre Frage ist verwirrend, da der Zugang kann nicht verbinden mit eigenen Daten-Dateien (Jet/ACE) über ODBC.
  • Richtig, mein Unterprogramm ist eigentlich in C++ geschrieben. Solange der Zugang nicht haben .mdb-Datei öffnen, oder es hat es zu öffnen im freigegebenen Modus, die C++ - Programm hat keine Schwierigkeiten, Sie zu manipulieren, die über ODBC. (Und es ist über 10x schneller als mit DAO oder ADO oder wir leihen die DAO-Verbindung aus der open Access Datenbank.)
InformationsquelleAutor apenwarr | 2009-07-28
Schreibe einen Kommentar