Beheben von Verweisproblemen in einer Access-Datenbank

Hinweis

Office 365 ProPlus wird in Microsoft 365-Apps für Unternehmen umbenannt. Weitere Informationen zu dieser Änderung finden Sie in diesem Blogbeitrag.

Ursprüngliche KB-Nummer:   310803

Zusammenfassung

In diesem Artikel werden Probleme beschrieben, die die Verwendung von Verweisen in einer Access-Datenbank betreffen.

Das Verständnis von Verweisfehlern erfordert ein Verständnis dafür, wie auf Bibliotheken in einer Access-Datenbank verwiesen wird, und was erforderlich ist, um eine Datenbank auf einem Zielcomputer zu installieren, ohne diese Verweise zu unterbrechen. Dieser Artikel ist eine Zusammenfassung der folgenden Themen:

  • Anzeigen von Access-Datenbankverweisen
  • Auflösen von Microsoft Visual Basic for Applications-Verweisen in Access
  • Grundlegendes zu Referenzfehlermeldungen
  • Beheben von Verweisproblemen auf dem Entwicklungscomputer
  • Verteilen von Datenbankdateien
  • Aktualisieren der Referenzliste
  • Verteilen von Datenbankdateien mit ActiveX Steuerelementen
  • Erneutes Registrieren einer Datei

Anzeigen von Access-Datenbankverweisen

So zeigen Sie die aktuellen Datenbankverweise an:

  1. Öffnen Sie die Datenbank.
  2. Drücken Sie ALT+F11, um Visual Basic Editor zu starten.
  3. Klicken Sie im Menü Extras auf Verweise.

Auflösen Visual Basic Verweise in Access

Access lädt die relevante Datei (z. B. eine Typbibliothek, eine Objektbibliothek oder eine Steuerelementbibliothek) für jeden Verweis gemäß den Informationen, die im Feld "Verweise" angezeigt werden. Wenn Access die Datei nicht finden kann, führt Access die folgenden Verfahren aus, um die Datei zu suchen:

  1. Zugriffsüberprüfungen, um festzustellen, ob die referenzierte Datei derzeit im Arbeitsspeicher geladen ist.
  2. Wenn die Datei nicht im Arbeitsspeicher geladen wird, versucht Access zu überprüfen, ob der RefLibPaths Registrierungsschlüssel vorhanden ist. Wenn der Schlüssel vorhanden ist, sucht Access nach einem benannten Wert, der denselben Namen wie der Verweis aufweist. Wenn eine Übereinstimmung vorliegt, lädt Access den Verweis aus dem Pfad, auf den der benannte Wert verweist.
  3. Access sucht dann in der folgenden Reihenfolge nach der referenzierten Datei:
    1. Der Anwendungsordner (der Speicherort der Msaccess.exe-Datei).
    2. Der aktuelle Ordner, der angezeigt wird, wenn Sie im Menü "Datei" auf "Öffnen" klicken.
    3. Der Windows- oder Winnt-Ordner, in dem die Betriebssystemdateien ausgeführt werden.
    4. Der Systemordner unter dem Windows- oder Winnt-Ordner.
    5. Die Ordner in der PATH-Umgebungsvariablen, auf die vom Betriebssystem direkt zugegriffen werden kann.
  4. Wenn Access die Datei nicht finden kann, tritt ein Verweisfehler auf.

Grundlegendes zu Referenzfehlermeldungen

Es gibt mehrere Fehlermeldungen, die sich auf eine fehlende Datei oder eine Datei beziehen, die eine andere Version als die in der Datenbank verwendete Version aufweist. In den meisten Fällen können Sie in der Microsoft Knowledge Base nach einem Artikel zu der spezifischen Fehlermeldung suchen und den Fehler beheben, indem Sie die Schritte im Artikel ausführen. In einigen Fällen wird eine Abhängigkeitsdatei nicht ordnungsgemäß mit der primären Datei abgeglichen.

In der folgenden Liste werden einige der Referenzfehlermeldungen beschrieben, die Sie möglicherweise erhalten. Beachten Sie jedoch, dass die Liste nicht alle möglichen Referenzfehlermeldungen enthält.

  • "MethodName of Object ObjectName Failed"

    In der Regel wird diese Fehlermeldung angezeigt, wenn ein Problem mit einer Programmiertypbibliothek vorliegt, z. B. bei einer ungültigen DLL-Datei (Data Access Object, DAO). Sie können die Microsoft Knowledge Base nach Artikeln durchsuchen, die die verschiedenen Formen dieser Fehlermeldung beschreiben.

  • "Funktion ist im Verwendungsausdruck nicht verfügbar"

    Diese Fehlermeldung wird möglicherweise angezeigt, wenn ein Problem mit einer Programmiertypbibliothek vorliegt oder wenn der Code die richtige Bibliothek nicht explizit aufruft und die Datei in der Referenzliste mit einer niedrigeren Priorität als eine Datei mit demselben Funktionsnamen aufgeführt wird, z. B. wenn DAO-Code mit der ADO-Bibliothek (ActiveX Data Object) mit einer höheren Priorität als die DAO-Bibliothek verwendet wird. Diese Fehlermeldung wird möglicherweise auch angezeigt, wenn ein Formular oder ein Bericht ein ActiveX Steuerelement enthält.

  • "Projekt oder Bibliothek kann nicht gefunden werden"

    Diese Fehlermeldung wird möglicherweise angezeigt, wenn Access eine Datei in der Referenzliste nicht finden kann. Häufig wird die Datei im Dialogfeld Referencesdialog als Missingin gekennzeichnet. Manchmal ist die Datei auf dem Entwicklungscomputer vorhanden, aber nicht auf dem Zielcomputer.

  • "Variable nicht definiert" oder "Benutzerdefinierter Typ nicht definiert"

    Eine dieser Fehlermeldungen wird möglicherweise angezeigt, wenn Sie den sicherheitsassistenten User-Level verwenden, um eine Datenbank zu sichern, die auf andere Bibliotheken als die standardmäßig enthaltenen Bibliotheken verweist. Beispielsweise werden Verweise auf Bibliotheken, die in der ungesicherten Datenbank vorhanden waren, nicht automatisch in der neuen, gesicherten Datenbank erstellt.

  • "Laufzeitfehler 5", "Ungültiger Prozeduraufruf oder ungültiges Argument", "Die Bibliothek, die dieses Symbol enthält, wird vom aktuellen Projekt nicht referenziert" oder "Die Bibliothek, die dieses Symbol enthält, wird vom aktuellen Projekt nicht referenziert, sodass das Symbol nicht definiert ist".

    Sie erhalten möglicherweise eine dieser Fehlermeldungen, wenn ein Verweis auf eine Datenbank, eine Typbibliothek oder eine Objektbibliothek vorhanden ist, die als "Missing" gekennzeichnet ist.

  • "ActiveX Komponente kann kein Objekt erstellen"

    Diese Fehlermeldung bedeutet nicht unbedingt, dass ein ActiveX-Steuerelement beteiligt ist. Eine mögliche Ursache ist beispielsweise, dass DAO, eine ActiveX Komponente, kein Objekt erstellen kann, da der DAO Automation Server nicht gestartet werden kann. Häufig liegt die Ursache darin, dass DLLs, die referenzierte Funktionen für das Programm bereitstellen, nicht registriert oder falsch registriert sind.

Beheben von Verweisproblemen auf dem Entwicklungscomputer

Das Erstellen einer neuen, leeren Datenbank und das anschließende Importieren von Objekten aus einer anderen Datenbankdatei kann zu Verweisproblemen führen, wenn der Code oder ActiveX Steuerelemente auf Verweise basieren, die standardmäßig nicht in einer Datenbank enthalten sind. Die Standardverweise für eine Access 2000-Datenbank sind:

  • Visual Basic for Applications
  • Microsoft Access 9.0-Objektbibliothek
  • OLE-Automatisierung
  • Microsoft ActiveX Data Objects (ADO) 2.1-Bibliothek

Wenn es sich bei der Quelle um eine andere Access 2000-Datenbank handelt, stellen Sie sicher, dass die Verweise übereinstimmen. Wenn sich die Quelle in einer früheren Version von Access befindet, wird DAO 3.5 oder früher wahrscheinlich verwendet. In Access 2000 wird dao 3.5 jedoch nicht standardmäßig bereitgestellt. Versuchen Sie, den Verweis auf die ADO 2.1-Bibliothek (sofern vorhanden) zu entfernen und den Verweis auf die DAO 3.6-Objektbibliothek hinzuzufügen.

Wenn Sie die Datenbank aus einer früheren Version von Access konvertiert haben und die Datenbank einen Verweis auf die Datei Utility.mda enthält, können Sie diesen Verweis in den meisten Fällen entfernen, da die Funktionen, die dieser Verweis aufruft, in den Standardverweisen in Access 2000 enthalten sind. Wenn Verweise auf frühere Versionen von DAO vorhanden sind, können Sie diese Verweise auch entfernen, da DAO 3.6 diese Funktionen adressieren kann.

So fügen Sie einer Bibliothek einen Verweis hinzu:

  1. Öffnen Sie die Datenbank.
  2. Drücken Sie ALT+F11, um Visual Basic Editor zu starten.
  3. Klicken Sie im Menü Extras auf Verweise.
  4. Klicken Sie unter "Verfügbare Verweise" auf das Kontrollkästchen neben dem Namen der Bibliothek, und klicken Sie dann auf "OK".

So entfernen Sie einen Verweis auf eine Bibliothek:

  1. Öffnen Sie die Datenbank.
  2. Drücken Sie ALT+F11, um Visual Basic Editor zu starten.
  3. Klicken Sie im Menü Extras auf Verweise.
  4. Deaktivieren Sie unter "Verfügbare Verweise" das Kontrollkästchen neben dem Namen der Bibliothek, und klicken Sie dann auf "OK".

Verteilen von Datenbankdateien

Es gibt zwei grundlegende Methoden zur Verteilung von Datenbankdateien. Sie können die Datei vom Entwicklungscomputer auf den Zielcomputer kopieren oder den Paket- und Bereitstellungs-Assistenten verwenden, um ein Setuppaket zu erstellen.

Wenn Sie die Datei vom Entwicklungscomputer auf den Zielcomputer kopieren, wird nur die Datenbankdatei kopiert. Sie müssen manuell sicherstellen, dass alle dateien, die in der Referenzliste aufgeführt sind, auf der richtigen Versionsebene und am gleichen relativen Speicherort auf dem Zielcomputer wie auf dem Entwicklungscomputer verfügbar sind.

Beachten Sie beim Entwickeln von Laufzeitanwendungen in Access, dass einige Betriebssystemdateien mit der Laufzeitanwendung verteilt werden müssen. Das Verpacken dieser Dateien wird automatisch von der Komponente des Paket- und Bereitstellungs-Assistenten von Microsoft Office 2000 Developer ausgeführt. Manchmal hängen die Versionen der enthaltenen Dateien von anderen Anwendungen ab, die auf dem Entwicklungscomputer installiert sind und möglicherweise die Betriebssystemdateien geändert haben.

Wenn Sie bestimmte Richtlinien befolgen, wird in der Regel sichergestellt, dass die Versionen der verwendeten Dateien bei der Installation der Laufzeitanwendung nicht mit Dateien auf dem Zielcomputer in Konflikt stehen. Hier sind die Richtlinien:

  1. Entwickeln Sie die Access-Datenbank auf einem beliebigen Computer.
  2. Erstellen Sie eine Computerumgebung, in der die Festplatte neu formatiert wurde und nur die früheste Version des anwendbaren Betriebssystems, von Office und von Office 2000 Developer installiert ist. Führen Sie den Paket- und Bereitstellungs-Assistenten auf diesem Computer aus, um die Laufzeitversion der Anwendung zu erstellen. Dadurch wird sichergestellt, dass die Überarbeitungsebenen der Dateien auf allen Zielcomputern funktionieren.
  3. Erstellen Sie eine Computerumgebung, in der die Festplatte neu formatiert wurde und nur das Betriebssystem installiert ist. Testen Sie die Laufzeitanwendung in dieser Umgebung.
    • Wenn die Anwendung nicht erfolgreich ausgeführt wird, wissen Sie, dass etwas mit der Anwendung selbst nicht stimmt. Sie müssen das Problem identifizieren und beheben, bevor Sie die Anwendung verteilen.
    • Wenn die Anwendung erfolgreich auf dem Testcomputer, aber nicht auf dem Zielcomputer funktioniert, wissen Sie, dass auf dem Zielcomputer und nicht in der Anwendung ein Fehler vorliegt. Sie müssen die potenzielle Ursache auf dem Zielcomputer identifizieren und beheben, wahrscheinlich eine Inkompatibilität oder eine beschädigte Datei.

Aktualisieren der Referenzliste

Wenn das Referenzproblem ein ActiveX Steuerelement umfasst, können Sie das Problem manchmal beheben, indem Sie die Referenzliste aktualisieren. So aktualisieren Sie die Referenzliste:

  1. Klicken Sie in Visual Basic Editor im Menü Extras auf Verweise.
  2. Klicken Sie im Dialogfeld Verweise auf einen Verweis, der noch nicht ausgewählt ist, notieren Sie sich, welchen Sie auswählen, und klicken Sie dann auf "OK".
  3. Klicken Sie im Menü "Extras" erneut auf "Verweise".
  4. Klicken Sie, um die Auswahl des Verweises abzubrechen, und klicken Sie dann auf OK.

Verteilen von Datenbankdateien mit ActiveX Steuerelementen

Es gibt zwei Arten von Lizenzen für ActiveX Steuerelemente: eine Entwurfszeitlizenz und eine Laufzeitlizenz.

  • Mit einer Entwurfszeitlizenz können Sie lizenzierte ActiveX Steuerelemente aus Office 2000 Developer in Formulare und Berichte in einer Access-Datenbank einfügen.
  • Mit einer Laufzeitlizenz können Sie die ActiveX Steuerelemente in einer Access-Datenbank auf einem Computer verwenden, auf dem Office 2000 Developer nicht installiert ist, aber eine Laufzeitlizenz ermöglicht es Ihnen nicht, neue lizenzierte ActiveX Steuerelemente einzufügen. Um eine Laufzeitlizenz zu installieren, verteilen Sie die ActiveX Steuerelemente mithilfe des Paket- und Bereitstellungs-Assistenten, der die Lizenz für die Steuerelemente in der Registrierung des Zielcomputers schreibt.

Ein fehlendes Kennzeichen, das möglicherweise angezeigt wird, wenn Sie ein Modul in der Entwurfsansicht öffnen und dann im Menü "Extras" auf Verweise klicken, gibt an, dass der Verweis auf das Allgemeine Dialogfeld-Steuerelement auf dem Zielcomputer nicht mit der Quelle in der Datenbankdatei vom Entwicklungscomputer übereinstimmt.

Wenn Sie eine Datenbankdatei verteilen, ohne das verteilbare Allgemeine Dialogfeld-Steuerelement zu installieren, wird der Verweis des Steuerelements möglicherweise als "Fehlt" gekennzeichnet, oder Sie erhalten eine Fehlermeldung, dass "Sie nicht über die erforderliche Lizenz zum Verwenden dieses ActiveX-Steuerelements verfügen", wenn das nicht verteilbare Steuerelement bereits auf dem Zielcomputer installiert ist.

Auch wenn die Datenbankdatei Teil einer Laufzeitanwendung ist, wird möglicherweise die Fehlermeldung "Sie verfügen nicht über die erforderliche Lizenz für die Verwendung dieses ActiveX-Steuerelements" angezeigt, wenn das nicht verteilbare Steuerelement, das bereits auf dem Zielcomputer installiert ist, eine höhere Version aufweist als das steuerelement, das von Der Laufzeitanwendung bereitgestellt wird. Dieses Problem kann auftreten, da das Setupprogramm höhere Versionen einer Datei mit einer früheren Version derselben Datei nicht überschreibt.

Erneutes Registrieren einer Datei

Es ist möglich, dass sich eine Datei in der Referenzliste befindet, ohne ordnungsgemäß in der Registrierung registriert zu sein. Wenn Sie vermuten, dass dies der Fall sein könnte, führen Sie die folgenden Schritte aus, um die Datei erneut zu registrieren:

  1. Klicken Sie in Microsoft Windows NT 4.0 aufStart, zeigen Sie aufFind und dann auf Dateien oder Ordner, oder klicken Sie in Windows 2000 aufStart, zeigen Sie auf Suche, und klicken Sie dann auf "Dateien und Ordner".
  2. Geben Sie im Feld "Benannt" oder im Feld "Nach Dateien und Ordnern suchen" regsvr32.exe ein.
  3. Klicken Sie im Feld "Suchen in" auf den Stamm der Festplatte (in der Regel C:).
  4. Aktivieren Sie das Kontrollkästchen "Unterordner einschließen", wenn es noch nicht aktiviert ist, und klicken Sie dann auf "Jetzt suchen" oder "Jetzt suchen".
  5. Nachdem Sie die Datei gefunden haben, klicken Sie auf "Start", klicken Sie auf "Ausführen", und löschen Sie dann alles, was sich im Feld "Öffnen" befindet.
  6. Ziehen Sie die Regsvr32.exe-Datei aus dem Suchergebnisbereich in das Feld "Öffnen".
  7. Wiederholen Sie die Schritte 2 bis 6. Suchen Sie dieses Mal nach FileName.dll, wobei FileName der Name der Datei ist, die Sie erneut registrieren möchten.
  8. Nachdem sich die FileName.dll Datei im Feld "Öffnen" mit der datei Regsvr32.exe befindet, klicken Sie auf "OK".
  9. Testen Sie in Access, ob das Problem noch vorhanden ist.

Wenn Sie die Regsvr32.exe Datei nicht auf Ihrem Computer haben, überprüfen Sie andere Computer auf die Datei. Wenn die Datei nicht verfügbar ist, können Sie die Datei von der Microsoft-Website abrufen.

Hinweis

Denken Sie daran, alle Module zu kompilieren, nachdem Sie Verweise angepasst haben. Klicken Sie zum Kompilieren aller Module, wobei das Modul noch geöffnet ist, im Menü "Debuggen" auf "Datenbank kompilieren". Wenn die Module nicht kompiliert werden, kann es weitere nicht aufgelöste Verweise geben.