Sitemap Fernwartung Impressum
Online Tipps & Tricks
So lösen Sie Probleme mit Verweisen und Referenzen (Access)
01.01.2011

So lösen Sie Probleme mit Verweisen und Referenzen
Versionen: Access 97, 2000 und 2002

Sicherlich kennen Sie das Problem: Nachdem Sie eine Datenbank fertig gestellt bei einem Kollegen oder Kunden installiert haben, wird eine rätselhafte Fehlermeldung zu einem unbekannten Befehl angezeigt. In der VBA-Entwicklungsumgebung wird dann eine Anweisung wie "Left$()" oder "Val()" als Fehlerursache markiert. Da es sich hier um ganz "normale" VBA-Anweisungen handelt und sich dieser Fehler auf dem Entwicklungsrechner nicht reproduzieren lässt, ist nicht nachvollziehbar, warum diese Anweisung plötzlich unbekannt sein soll. In vielen Fällen wird dann versucht, das Problem auf dem Ziel-Rechner durch eine Neuinstallation von Access zu beheben, um sicherzustellen, dass die VBA-Umgebung inklusive aller benötigten DLL-Dateien auf dem neuesten Stand ist.

Das Problem hat allerdings eine ganz andere Ursache: Wenn eine Access-Datenbank geöffnet wird und dabei VBA-Anweisungen ausgeführt werden sollen, übersetzt Access VBA-Module in einen internen, schneller ausführbaren Code. Stößt es dabei auf irgendeinen Fehler, wird die VBA-Umgebung erst gar nicht initialisiert und einfache Anweisungen werden als unbekannt bemängelt. Einer der möglichen Fehler ist ein Verweis beziehungsweise eine Referenz, die auf dem Ziel-Rechner nicht aufgelöst werden kann.

Zum Beispiel: Auf dem Entwicklungs-Rechner setzen Sie ActiveX-Komponenten bzw. benutzerdefinierte Steuerelemente wie das Kalender- oder RTF-Steuerelement ein oder verwenden Anweisungen für Office Automation, um Adressen aus Access heraus in einem Word-Dokument einzufügen. Sobald Sie nun eine dieser ActiveX-Komponenten oder Steuerelemente in einem Formular bzw. Bericht verwenden, setzt Access unbemerkt im Hintergrund einen Verweis auf die dazugehörige Bibliothek.

Für den Einsatz von Office Automation setzen Sie den Verweis zum Beispiel auf "Microsoft Word 9.0 Object Library". Wird die Datenbank nun auf dem Ziel-Rechner gestartet, versucht Access die zum Verweise gehörenden Bibliotheken zu laden. Wird sie dort aber nicht gefunden, kann es zu dem erwähnten Fehler kommen.

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


Öffnen Sie ein beliebiges Modul auf dem Rechner, auf dem die Fehlermeldung angezeigt wird.

Wählen Sie das Menü Extras-Verweise an.

Prüfen Sie die einzelnen Einträge in der Liste "Verfügbare Verweise". Hier gibt es einen oder mehrere Einträge, denen die Zeichenkette "NICHT VORHANDEN:" vorangestellt ist. Sie finden also zum Beispiel einen Eintrag "NICHT VORHANDEN: Microsoft RichText Control 6.00", "NICHT VORHANDEN: Microsoft Word 9.0" oder ähnlich.

Prüfen Sie, ob das referenzierte Steuerelement beziehungsweise die ActiveX-Komponente oder Office-Anwendung tatsächlich in der Datenbank verwendet wird. Häufig werden solche Komponenten oder Steuerelemente "testweise" in ein Formular eingebunden, dann aber später wieder gelöscht . die Referenz bleibt aber trotzdem gesetzt!

Wird die ActiveX-Komponente/das Steuerelement nicht in der Datenbank verwendet, entfernen Sie das Häkchen vor dem "NICHT VORHANDEN:"-Eintrag und klicken dann auf Ok.

Wird die ActiveX-Komponente/das Steuerelement jedoch in der Datenbank verwendet beziehungsweise muss auf eine Office-Anwendung wie Word oder Excel zugegriffen werden, müssen Sie die betreffende Komponente auf dem Ziel-Rechner installieren.

Oftmals benötigen Sie zur Lokalisierung des Problems zusätzliche Informationen, die nicht oder nur teilweise im Dialog "Verweise" abgelesen werden können. Benutzen Sie in solchen Fällen das Testfenster beziehungsweise den Direktbereich:


Wechseln Sie über Alt+F11 in die VBA-Entwicklungsumgebung und drücken Sie Strg+G, um das Testfenster beziehungsweise den Direktbereich zu öffnen.

Geben Sie hier die folgende Anweisung ein, um zunächst die Anzahl gesetzter Verweise zu ermitteln:

? Application.References.Count


Nun können Sie über die folgenden Anweisungen weitere Informationen zum Verweis abrufen:

? Application.References(n).IsBroken
? Application.References(n).BuiltIn
? Application.References(n).FullPath
? Application.References(n).Name
? Application.References(n).Major & "." & Minor"

"n" adressiert hierbei einen der Verweise von "1" bis der von "Application.References.Count" gemeldeten Nummer.

"IsBroken" gibt Auskunft, ob der Verweise aufgelöst werden konnte (= False) oder nicht (= True). "BuildIn" verrät Ihnen, ob es sich bei der Komponente um eine zu Access gehörende Komponente (= True, zum Beispiel "VBA") oder um eine externe Komponente (= False, zum Beispiel "TreeView") handelt. "FullPath" liefert bei Bedarf den kompletten Pfad der referenzierten Komponente. "Name" gibt eine Kurzbezeichnung des problematischen Verweises wie "VBA" oder "Word" aus. Über "Major" und "Minor" können Sie schließlich Versionsinformationen im Format "6.00" oder ähnlich abrufen und so Probleme lokalisieren, die aus veralteten Versionen der benötigten Komponenten resultieren.

Öffnungszeiten
Ladengeschäft:
Montag bis Donnerstag
15:00-18:00 Uhr
Freitag
8:30:13:00 Uhr
Samstag
nach Terminvereinbarung

Wir vereinbaren auch
gerne Termine über unsere
Öffnungszeiten hinaus.

Telefon:
06723 889005

Telefax:
06723 889006

E-Mail:
info@tibe.de

Adresse:
Tibe Services
Inhaber: Tim Berlebach
Zangerstraße 22
65375 Oestrich-Winkel /
Ortsteil Hallgarten

Öffentlicher Parkplatz:
Taunusstraße/
Ecke Zangerstraße


 Preisänderungen und Irrtümer bleiben vorbehalten.  Angebot gilt solange Vorrat reicht!

© 1996-2024 Tibe Services Tim Berlebach, Zangerstraße 22, 65375 Oestrich-Winkel,
Tel: 06723 889005, Fax: 06723 889006, E-Mail: info(at)tibe.de, Internet: www.tibe.de