Exklusivmodus-Sperre nötig, um Änderungen an Objekten in Access 2000 zu speichern

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 200290 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D39114
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
200290 Exclusive lock is required for saving design changes to Access objects in Access 2000
Fortgeschritten: Erfordert Fachkenntnisse in den Bereichen Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb).

In Artikel 283228 wird dieses Thema für Microsoft Access 2002 behandelt.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie versuchen, Symbolleisten anzupassen, oder Sie öffnen ein Formular, einen Bericht, ein Makro, oder ein Modul in Microsoft Access in der Entwurfsansicht, wird die folgende Fehlermeldung angezeigt:
Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Falls Sie Änderungen vornehmen, werden Sie sie evtl. später nicht speichern können.
Wenn Sie versuchen, Entwurfsänderungen zu speichern, die Sie an einem Access-Formular, -Bericht, -Makro oder -Modul vorgenommen haben, wird die folgende Meldung angezeigt:
Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Ihre Entwurfsänderungen können nicht gespeichert werden.
Wenn Sie versuchen, eine neue Datenzugriffsseite zu speichern, wird die folgende Meldung angezeigt:
Eine Verknüpfung zu dieser Datenzugriffsseite konnte nicht erstellt werden, da die Datenbank nicht exklusiv gesperrt werden kann.

Ursache

Sie versuchen, ein Formular, einen Bericht, ein Makro, ein Modul, oder eine Befehlsleiste in der Entwurfsansicht zu öffnen, oder Sie versuchen, Entwurfsänderungen an einem dieser Objekttypen oder an einer neuen Seitenverbindung zu speichern, während andere Benutzer gerade die gleiche Datenbank geöffnet haben. Um Entwurfsänderungen an diesen Objekttypen zu speichern, muss Access in der Lage sein, die Datenbank exklusiv zu sperren.

Lösung

In Situationen, in denen mehrere Entwickler gleichzeitig eine Access-Anwendung entwerfen, sollten Sie die Quellcode-Verwaltung implementieren, indem Sie das Microsoft Visual SourceSafe Add-In für Microsoft Access verwenden. Eine andere Möglichkeit besteht darin, lokale Arbeitskopien der Datenbank an alle Entwickler zu verteilen. Diese Optionen werden im folgenden ausführlich besprochen.

Implementieren der Quellcode-Verwaltung

Das Microsoft Access Visual SourceSafe Add-In ermöglicht Ihnen, Ihre Access-Anwendung während der Entwicklung unter Quellcode-Verwaltung zu stellen. Das Stellen der Anwendung unter Quellcode-Verwaltung ermöglicht Ihnen, an der Anwendung vorgenommene Änderungen zu verfolgen und zu speichern. Durch die Verwendung von Microsoft Visual SourceSafe können Teammitglieder das Protokoll eines Objekts überprüfen und frühere Versionen eines Objekts wiederherstellen. Einzelne Benutzer können Objekte in Ihrer Microsoft Access-Anwendung auschecken, sie ändern und anschließend wieder einchecken. Das Microsoft Access Visual SourceSafe Add-In ist in Microsoft Office 2000 Developer verfügbar. Um das Microsoft Access Visual SourceSafe Add-In zu verwenden, müssen Sie zusätzlich Microsoft Visual SourceSafe getrennt installieren, das ebenfalls in Microsoft Office 2000 Developer verfügbar ist.

Verwenden von einzelnen Arbeitsdatenbanken

Als weitere implementierbare Option können Sie eine Originalkopie der Datenbankanwendung an einem zentralen Ort aufbewahren und anschließend einzelne Arbeitskopien der Datenbank auf dem Computer jedes Entwicklers verwenden. Jeder Entwickler entwickelt dann seinen Teil der Anwendung in der lokalen Arbeitskopie der Datenbank. Wenn der Entwickler eine Änderung an einem Objekt in der Datenbankanwendung vornehmen möchte, importiert er das Objekt von der zentralen Datenbank in seine lokale Arbeitsdatenbank. Anschließend nimmt der Entwickler die notwendigen Änderungen an dem Objekt in seiner Datenbank vor und speichert das Objekt. Wenn der Entwickler bereit ist, die Änderungen an die zentrale Datenbank zu übermitteln, exportiert er das Objekt in die zentrale Datenbank und überschreibt das Originalobjekt.

Ein Nachteil dieses Ansatzes besteht darin, dass nicht festgestellt werden kann, ob mehrere Entwickler gleichzeitig lokal an dem gleichen Objekt arbeiten. Wenn der Entwickler das Objekt in die zentrale Datenbank exportiert, könnte er unwissentlich Änderungen überschreiben, die ein anderer Entwickler an die zentrale Datenbank übermittelt hat.

Weitere Informationen

Um Entwurfsänderungen an Access-Objekten wie Formularen, Berichten, neuen Seitenverbindungen, Makros, Modulen und Befehlsleisten zu speichern, muss Access 2002 in der Lage sein, die Datenbank während des Speicherns exklusiv zu sperren. Tabellen, Abfragen und Beziehungen fallen nicht unter diese Einschränkung, da es sich bei ihnen um Microsoft Jet-Objekte handelt. Microsoft hat diese Anforderung aus mehreren Gründen bei Access 2000 eingeführt:
  • Die Konsistenz mit anderen Client-Anwendungen mit Visual Basic-Umgebung wird gewährleistet.
  • Die Abhängigkeit von der Jet Datenbank-Engine wird aufgehoben.
  • Die Leistung und Stabilität von Access-Objekten werden verbessert.

Die Konsistenz mit anderen Client-Anwendungen mit Visual Basic-Umgebung wird gewährleistet.

Da Access 2000 die Microsoft Visual Basic-Umgebung enthält, muss das von Microsoft Access verwendete Speichermodell mit anderen Anwendungen, die die Visual Basic-Umgebung enthalten, konsistent sein. In der Microsoft Visual Basic-Umgebung können Visual Basic-Projekte, die nicht unter Quellcode-Verwaltung stehen, nur exklusiv bearbeitet und gespeichert werden. Dies trifft für Microsoft Visual Basic 6.0 sowie für alle Microsoft Office-Anwendungen zu, die die Visual Basic-Umgebung enthalten.

Abhängigkeit von der Jet Datenbank-Engine wird aufgehoben:

Access 2000 bietet nun die Möglichkeit, sowohl Microsoft Access-Projektdateien (.ADP) als auch Microsoft Access-Datenbanken (.MDB) zu erstellen. Die Verwendung eines Access-Projekts bietet Entwicklern die Möglichkeit, Microsoft SQL Server als alternative Datenbank-Engine zu Microsoft Jet zu verwenden. Früher waren alle Access-Objekte (Formulare, Berichte, Makros, Module und Befehlsleisten) hinsichtlich der Speicherung von der Jet Datenbank-Engine abhängig. Diese Objekte wurden in Access-Systemtabellen in der Microsoft Jet-Datenbank gespeichert. Da bei Access 2000 die Möglichkeit besteht, Microsoft SQL Server als Alternative zu Microsoft Jet zu verwenden, mußte Microsoft einen Speichermechanismus für Access-Objekte entwickeln, der nicht von der Jet Datenbank-Engine abhängig ist.

Leistung und Stabilität von Access-Objekten werden verbessert:

Das neue Speichermodell für Projekte verbessert die Stabilität von Access-Objekten und des Visual Basic-Projekts. Visual Basic für Applikationen hat bisher nie die Bearbeitung von Visual Basic-Projekten durch mehrere Benutzer ohne Quellcodekontrolle ermöglicht. Microsoft Access 95 und 97 konnten diese Einschränkung umgehen, indem sie in einer Mehrbenutzer-Umgebung vorgenommene Projektänderungen vor Visual Basic für Anwendungen versteckten und die Änderungen zu einem späteren Zeitpunkt mit dem Projekt zusammenführten. Dies konnte jedoch die Stabilität des Visual Basic-Projekts beeinträchtigen. Daher erfordert Microsoft Access 2000 für das Entwerfen von Access-Objekten eine exklusive Sperre, um sicherzustellen, dass das Projekt nur einen Editor aufweist.

Bearbeiten von Microsoft Access-Objekten in einer Mehrbenutzer-Umgebung

Da Benutzer eine Datenbank entweder für exklusive oder für gemeinsame Nutzung öffnen können, hängt das von Access ausgeübte Speicherverhalten davon ab, wie der Benutzer die Datenbank geöffnet hat und ob momentan mehrere Benutzer Zugriff darauf haben.

Wenn ein Entwickler die Datenbank für die exklusive Nutzung öffnet, kann der Entwickler den Entwurf eines Access-Objekt speichern, wenn er die Datenbank für Lese-/Schreibzugriff öffnen kann und über ausreichende Berechtigungen verfügt, um den Entwurf des Objekts zu ändern.

Wenn ein Benutzer die Datenbank für die gemeinsame Nutzung öffnet, kann der Benutzer den Entwurf eines Access-Objekt speichern, wenn er die Datenbank für Lese-/Schreibzugriff öffnen kann, über ausreichende Berechtigungen verfügt, um den Entwurf des Objekts zu ändern, und wenn Access die Datenbank exklusiv sperren kann.

Höherstufen der Sperre

Um die exklusive Nutzung der Datenbank sicherzustellen, verwendet Access die Verbindungskontroll-Funktion der Jet Datenbank-Engine, um die Sperre für gemeinsame Nutzung auf den Exklusivmodus höherzustufen. Access versucht, eine Sperre für gemeinsame Nutzung auf eine Exklusivmodus-Sperre höherzustufen, sobald der Benutzer ein Formular, einen Bericht, ein Makro oder eine Befehlsleiste in der Entwurfsansicht öffnet. Access versucht in diesem Moment, die Sperre höherzustufen, um zu vermeiden, dass ein Benutzer mehrere Entwurfsänderungen vornimmt und später feststellen muß, dass er sie nicht speichern kann, da Access keine exklusive Sperre einrichten kann. Durch den Versuch, die Sperre höherzustufen, sobald der Benutzer ein Objekt in der Entwurfsansicht öffnet, kann Access den Benutzer warnen, bevor er Entwurfsänderungen vornimmt, wenn keine exklusive Sperre eingerichtet werden kann. Access versucht nicht, die Sperre höherzustufen, wenn ein Modul in der Entwurfsansicht geöffnet wird; es versucht jedoch, die Sperre höherzustufen, sobald der Benutzer ein Modul in der Datenbank bearbeitet.

Access behält die exklusive Sperre bei, bis der Benutzer alle geänderten Objekte gespeichert oder verworfen hat und keine anderen Objekte mehr in der Entwurfsansicht geöffnet sind. Anschließend stuft Access die Sperre auf gemeinsame Nutzung zurück, wenn die Datenbank ursprünglich für gemeinsame Nutzung geöffnet wurde.

Wenn Access nicht in der Lage ist, die Sperre auf den Exklusivmodus höherzustufen, wenn der Benutzer ein Objekt in der Entwurfsansicht öffnet, warnt es den Benutzer mit der folgenden Meldung:
Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Falls Sie Änderungen vornehmen, werden Sie sie evtl. später nicht speichern können.
Nach Anzeige dieser Warnmeldung öffnet Access das Objekt in der Entwurfsansicht und gestattet dem Benutzer, Entwurfsänderungen vorzunehmen. Wenn der Benutzer versucht, das Objekt zu speichern, versucht Access, die Sperre für gemeinsame Nutzung auf den Exklusivmodus höherzustufen. Kann die Sperre höhergestuft werden, speichert Access das Objekt und behält die Exklusivmodus-Sperre bei, bis der Benutzer alle weiteren geänderten Objekte gespeichert oder verworfen hat und kein Objekt mehr in der Entwurfsansicht geöffnet ist. Kann die Sperre nicht höhergestuft werden, wird die folgende Meldung angezeigt:
Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Ihre Entwurfsänderungen können nicht gespeichert werden.
Wenn der Benutzer versucht, das geänderte Objekt zu schließen und Änderungen zu speichern, bietet Access dem Benutzer die Option an, das Objekt zu schließen und vorgenommene Entwurfsänderungen zu verwerfen, oder es geöffnet zu lassen und nicht zu speichern.

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie zwei Instanzen von Microsoft Access auf dem gleichen Computer.
  2. Öffnen Sie die Beispieldatenbank "Nordwind.mdb" in beiden Instanzen.
  3. Öffnen Sie in der ersten Instanz von Microsoft Access das Formular Kunden" in der Entwurfsansicht. Beachten Sie, dass die folgende Meldung angezeigt wird:
    Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Falls Sie Änderungen vornehmen, werden Sie sie evtl. später nicht speichern können.
  4. Klicken Sie auf OK, um die Meldung zu löschen. Beachten Sie, dass das Formular in der Entwurfsansicht geöffnet wird.
  5. Fügen Sie ein Textfeld-Steuerelement zu dem Formular hinzu.
  6. Klicken Sie im Menü Datei auf Speichern. Beachten Sie, dass die folgende Meldung angezeigt wird:
    Sie haben momentan keinen exklusiven Zugriff auf die Datenbank. Ihre Entwurfsänderungen werden nicht gespeichert.
  7. Klicken Sie auf OK, um die Meldung zu löschen.
  8. Schließen Sie die zweite Instanz von Access auf Ihrem Computer.
  9. Versuchen Sie in der ersten Instanz von Access erneut, das Formular zu speichern. Beachten Sie, dass das Formular erfolgreich gespeichert wird.

Verweise

Weitere Informationen zu der Verbindungskontroll-Funktion der Jet Datenbank-Engine finden Sie im folgenden Artikel der Microsoft Knowledge Base:
198756 Verwenden des Connection-Steuerelementes zum Verhindern des Öffnens einer Datenbank

Eigenschaften

Artikel-ID: 200290 - Geändert am: Samstag, 21. Januar 2006 - Version: 4.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 2000 Standard Edition
Keywords: 
kbdesign kbsavefile kbopenfile kbdap kberrmsg kbfaq kbprb KB200290
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com