Fehler durch defekte Verweise

Nachdem Sie eine Datenbank fertig gestellt und z. B. an einen Kollegen oder an Kunden ausgeliefert haben, erscheint unter Umständen eine Fehler meldung, die Sie auf einen unbekannten Befehl hinweist. Nach Bestätigung der Meldung erscheint dann das Fenster der VBA-Entwicklungsumgebung und zeigt die Fehler verursachende Routine mit einer markierten Anweisung wie „Left$(<Ausdruck>)“ oder „Val(<Ausdruck>)“ an.

Da es sich hier um ganz normale VBA-Anweisungen handelt und sich der Fehler auf dem Entwicklungsrechner nicht reproduzieren lässt, ist zunächst nicht nach vollziehbar, warum diese Anweisung plötzlich unbekannt sein soll.

Die Neuinstallation als Standardmethode zur Beseitigung des Problems hilft nicht weiter, denn es gibt eine ganz andere Ursache: Wenn eine Access-Datenbank geöffnet wird und dabei VBA-Anweisungen ausgeführt werden sollen, übersetzt Access die benötigten VBA-Module in einen schneller ausführbaren Code. Stößt es dabei auf irgendeinen Fehler, bleibt die VBA-Umgebung uninitialisiert und ein fache Anweisungen wie „Left$(<Aus druck>)“ oder „Val(<Ausdruck>)“ wer den als unbekannt bemängelt. Einer der möglichen Fehler ist ein Verweis, der auf dem Zielrechner nicht aufgelöst werden kann.

Ein Beispiel: Auf dem Entwicklungsrechner setzen Sie ActiveX-Kom po nen ten oder benutzerdefinierte Steuerelemente wie das „TreeView“-Steuerelement ein oder verwenden Anweisungen für Office Automation, um Adressen aus Access in ein Word-Dokument einzufügen. Sobald Sie eine dieser ActiveX-Komponenten in einem Formular oder in einem Bericht verwenden, setzt Access automatisch im Hintergrund einen Verweis auf die dazugehörige Objektbibliothek. Wird die Datenbank nun auf dem Zielrechner gestartet, versucht Access, die zum Verweis gehörenden Bibliotheken zu laden.

Ist dort jedoch zum Beispiel das „TreeView“-Steuerelement nicht installiert, bricht Access die Initialisierung mit der erwähnten Fehlermeldung ab.

Um das Problem zu lösen, gehen Sie wie folgt vor:

  1. Öffnen Sie ein beliebiges Modul und wählen Sie das Menü EXTRAS-VERWEISE an.
  2. Prüfen Sie die einzelnen Einträge in der Liste VERFÜGBARE VERWEISE. Sie werden einen oder mehrere Einträge vorfinden, denen der Hinweis „NICHT VORHANDEN:“ vorangestellt ist.
  3. Prüfen Sie, ob die referenzierte Komponente in der Datenbank benötigt wird. So werden ActiveX-Komponenten häufig testweise in ein Formular eingebunden, dann aber später wieder gelöscht – die Referenz darauf bleibt aber trotzdem gesetzt!
  4. Wird die ActiveX-Komponente/das Steuerelement nicht in der Datenbank verwendet, deaktivieren Sie das Kontrollkästchen vor dem entsprechen den Eintrag und bestätigen mit OK. Wenn die Komponente jedoch in der Datenbank verwendet wird, muss sie auf dem Zielrechner installiert werden, damit Access die Referenz auflösen kann.

In Access 2007 und 2003 erhalten Sie übrigens bereits beim Öffnen der Datenbank einen Hinweis auf einen oder mehrere fehlende Verweise.

Häufig wird dies e Meldung allerdings einfach weggeklickt und wird dann mit den weiteren Problemen bei der Ausführung von Prozeduren nicht mehr in Verbindung gebracht.

Sollten Sie Access 2007 oder 2003 einsetzen und die Fehlermeldung erhalten, gehen Sie am besten sofort wie oben beschrieben vor, um den Verweis zu korrigieren.