Beheben von Verweisproblemen in einer Access-Datenbank

Ursprüngliche KB-Nummer: 310803

Zusammenfassung

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

Um Verweisfehler zu verstehen, muss man sowohl wissen, wie Bibliotheken in einer Access-Datenbank referenziert werden, als auch, was erforderlich ist, um eine Datenbank auf einem Zielcomputer zu installieren, ohne diese Verweise zu trennen. Dieser Artikel bietet eine Zusammenfassung der folgenden Themen:

  • Anzeigen von Access-Datenbankverweisen
  • Auflösen von Microsoft Visual Basic für Applikationen-Verweisen in Access
  • Verstehen von Verweisfehlermeldungen
  • Beheben von Verweisproblemen auf dem Entwicklungscomputer
  • Verteilen von Datenbankdateien
  • Aktualisieren der Verweisliste
  • 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 den Visual Basic-Editor zu starten.
  3. Klicken Sie im Menü Extras auf Verweise.

Auflösen von Visual Basic-Verweisen 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, werden folgende Verfahren durchgeführt, um die Datei zu finden:

  1. Access überprüft, 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 Registrierungsschlüssel RefLibPaths vorhanden ist. Wenn der Schlüssel existiert, sucht Access nach einem benannten Wert, der denselben Namen wie der Verweis hat. Wenn eine Übereinstimmung vorliegt, lädt Access den Verweis aus dem Pfad, auf den der benannte Wert verweist.
  3. Access durchsucht dann folgende Ordner nach der referenzierten Datei, in dieser Reihenfolge:
    1. Den Anwendungsordner (dem Speicherort der Msaccess.exe-Datei).
    2. Den aktuellen Ordner, der angezeigt wird, wenn Sie im Menü Datei auf Öffnen klicken.
    3. Den Windows- oder Winnt-Ordner, in dem die Betriebssystemdateien ausgeführt werden.
    4. Den 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.

Verstehen von Verweisfehlermeldungen

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 Verweisfehlermeldungen beschrieben, die Sie möglicherweise erhalten. Beachten Sie jedoch, dass die Liste nicht alle möglichen Verweisfehlermeldungen enthält.

  • „Fehler der Methode Methodenname des Objekts Objektname

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

  • „Funktion nicht verfügbar in Ausdruck Verwendung

    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 Verweisliste 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 nicht auffindbar.

    Diese Fehlermeldung wird möglicherweise angezeigt, wenn Access eine Datei in der Verweisliste nicht finden kann. Häufig wird die Datei im Dialogfeld „Verweise“ als „Fehlt“ markiert. In einigen Fällen ist die Datei auf dem Entwicklungscomputer vorhanden, aber nicht auf dem Zielcomputer.

  • „Eine Variable ist nicht definiert“ oder „Ein benutzerdefinierter Typ ist nicht definiert“

    Eine dieser Fehlermeldungen wird möglicherweise angezeigt, wenn Sie den Benutzerdatensicherheits-Assistenten 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, „Das aktuelle Projekt verweist nicht auf die Bibliothek, die dieses Symbol enthält“ oder „Das aktuelle Projekt verweist nicht auf die Bibliothek, die dieses Symbol enthält, 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 „Fehlt“ 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-Automatisierungsserver 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 von Verweisen abhängig sind, die standardmäßig nicht in einer Datenbank enthalten sind. Die Standardverweise für eine Access 2000-Datenbank sind folgende:

  • 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 wahrscheinlich DAO 3.5 oder früher 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 aufrufen kann.

So fügen Sie einer Bibliothek einen Verweis hinzu:

  1. Öffnen Sie die Datenbank.
  2. Drücken Sie ALT + F11, um den 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 den 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.

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. In einigen Fällen hängen die Versionen der enthaltenen Dateien von anderen Anwendungen ab, die auf dem Entwicklungscomputer installiert sind und die 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. Es gelten folgende 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 ältesten Versionen des anwendbaren Betriebssystems, von Office und von Office 2000 Developer installiert sind. Führen Sie den Paket- und Bereitstellungs-Assistenten auf diesem Computer aus, um die Laufzeitversion der Anwendung zu erstellen. Dadurch wird sichergestellt, dass die Revisionsstufen 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 werden kann, liegt ein Fehler in der Anwendung selbst vor. Sie müssen das Problem identifizieren und beheben, bevor Sie die Anwendung verteilen.
    • Wenn die Anwendung auf dem Testcomputer erfolgreich funktioniert, auf dem Zielcomputer jedoch nicht, liegt der Fehler eher beim Zielcomputer als bei der Anwendung. Sie müssen die wahrscheinliche Ursache auf dem Zielcomputer ermitteln und beheben, wobei es sich vermutlich um eine Inkompatibilität oder eine beschädigte Datei handelt.

Aktualisieren der Verweisliste

Wenn das Verweisproblem ein ActiveX-Steuerelement betrifft, können Sie das Problem manchmal beheben, indem Sie die Verweisliste aktualisieren. So aktualisieren Sie die Verweisliste:

  1. Klicken Sie im 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. Deaktivieren Sie das Kontrollkästchen für den Verweis, 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.

Der Hinweis auf ein fehlendes Flag, der 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 Common Dialog-Steuerelement auf dem Zielcomputer nicht mit der Quelle in der Datenbankdatei vom Entwicklungscomputer übereinstimmt.

Wenn Sie eine Datenbankdatei verteilen, ohne das verteilbare Common Dialog-Steuerelement zu installieren, wird der Verweis des Steuerelements möglicherweise als „Missing“ (fehlt) gekennzeichnet, oder es wird die Fehlermeldung „Sie verfügen nicht über die für die Verwendung dieses ActiveX-Steuerelements erforderliche Lizenz“ angezeigt, 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 für die Verwendung dieses ActiveX-Steuerelements erforderliche Lizenz“ angezeigt, wenn das nicht verteilbare Steuerelement, das bereits auf dem Zielcomputer installiert ist, eine höhere Version hat als das Steuerelement, das von der Laufzeitanwendung bereitgestellt wird. Dieses Problem kann auftreten, da das Setupprogramm neuere Versionen einer Datei mit einer älteren Version derselben Datei nicht überschreibt.

Erneutes Registrieren einer Datei

Es ist möglich, dass sich eine Datei in der Verweisliste befindet, ohne ordnungsgemäß in der Registrierung eingetragen 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 auf „Start“, zeigen Sie auf „Suchen“ und dann auf Dateien oder Ordner“, oder klicken Sie in Windows 2000 auf „Start“, zeigen Sie auf „Suchen“, und klicken Sie dann auf Dateien und Ordner.
  2. Geben Sie im Feld Benannt oder im Feld Nach Dateien und Ordnern suchen den Befehl regsvr32.exe ein.
  3. Klicken Sie im Feld Suchen in auf das Stammverzeichnis der Festplatte (in der Regel C:).
  4. Aktivieren Sie das Kontrollkästchen Unterordner einbeziehen, wenn es nicht bereits aktiviert ist, und klicken Sie dann auf Suche starten oder Jetzt suchen.
  5. Nachdem Sie die Datei gefunden haben, klicken Sie auf Start, dann auf Ausführen, und löschen Sie dann alles, was sich im Feld Öffnen befindet.
  6. Ziehen Sie die Datei Regsvr32.exe aus dem Suchergebnisbereich in das Feld Öffnen.
  7. Wiederholen Sie die Schritte 2 bis 6. Suchen Sie dieses Mal nach Dateiname.dll, wobei FileName der Name der Datei ist, die Sie erneut registrieren möchten.
  8. Nachdem sich die Datei Dateiname.dll im Feld Öffnen mit der Regsvr32.exe-Datei befindet, klicken Sie auf OK.
  9. Testen Sie in Access, ob das Problem noch vorhanden ist.

Wenn die Datei Regsvr32.exe Datei nicht auf Ihrem Computer vorhanden ist, ü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.