Verweise
...oder warum läuft der VBA-Code nicht wie
gewünscht ?!?
Oft werde ich gefragt: 'Ich habe mir eine Datenbank aus dem Internet
heruntergeladen, oder von Jemandem eine Datenbank zur
Verfügung gestellt bekommen, doch auf meinem Rechner
läuft die DB nicht.
Woran kann das denn liegen ?'
Wenn die Datenbank auf dem anderen Rechner ohne Probleme funktioniert
hat ( sie also keine Fehler enthält ), dann sind meistens die
sogenannten Verweise 'Schuld'.
Was sind diese Verweise ?
Das sind für die entsprechende Datenbank geladene Bibliothekendateien,
ausführbare Programme und ActiveX-Steuerelemente , die Access
ausnutzt, um bestimmte Funktionen
oder Prozeduren
auszuführen bzw. um spezielle Funktionen von Steuerelementen
in die Datenbank einzubinden.
Beispiele für Verweise ( auch Referenzen genannt ):
Access erlaubt die Einbindung von folgenden Dateitypen als Verweis:
*.mdb ; *.mda ; *.mde ; *.adp ; *.ade --> Access-Datenbanken
bzw. Access-Projekte
*.exe ; *.dll --> Programmdateien
*.tlb ; *.olb --> Klassenbibliotheken
*.ocx --> ActiveX-Komponenten
Nun gibt es höchstwahrscheinlich keine zwei genau gleich
konfigurierte Computer auf der Welt, d.h. es ist sehr wahrscheinlich,
dass bei einer Fehlermeldung, wie z.B. 'Benutzerdefinierter
Typ nicht definiert', auf Ihrem Rechner nicht alle Verweise (
eigentlich ja die Dateien, auf die verwiesenen wird ) zur
Verfügung stehen.
Ja, aber wie prüfe ich, welche Dateien fehlen, bzw. ob diese
in einem anderen Ordner versteckt sind ?
Die folgende Vorgehensweise zeigt, wie dies realisiert wird:
Sie müssen den Visual Basic Editor (
Code-Schaltfläche ) aufrufen :
Gehen Sie ( wenn vorhanden ) auf die Entwurfsansicht eines Modules,
bzw. erstellen Sie ein neues Modul,
ODER gehen Sie in die Entwurfsansicht eines Formulares oder Berichtes.
Dann klicken Sie auf die Schaltfläche Code.

Jetzt öffnet sich das Visual
Basic Editor Fenster.
Hier wählen Sie nun die Schaltfläche Extras
--> Verweise aus:

Haben Sie darauf geklickt, erscheint endlich das Fenster mit den
geladenen ( und eventuell fehlenden ) Verweisen:

Hier sehen Sie alle geladenen Verweise ( also Dateien, die als Referenz
dienen ), und sogar den ( wenn auch meist aus Platzgründen des
kleinen Verweise-Fensters abgeschnittenen ) Pfad der geladenen Datei.
Ist ein vom Ersteller der Datenbank geladener Verweis ( der also auf
dem Rechner des Erstellers vorhanden war ) NICHT
mehr auf Ihrem Rechner verfügbar, dann steht vor dem Verweis,
in dessen Ladefenster ein Häkchen geklickt ist:
NICHT VORHANDEN Name des Verweises.
Nun gibt es zwei Möglichkeiten:
1. - Sie haben die Datei, auf die der Verweis zeigt NICHT auf ihrem
Rechner, dann muss derjenige der die DB erstellt hat
(natürlich im Rahmen des Erlaubten ;-)), die fehlende Datei
auf Ihren Computer überspielen,
2. - Sie haben die Datei, aber sie liegt an einem für Access
nicht abgefragten Ort, sprich in einem Ordner, den Access nicht
durchsucht.
In diesm Fall haben Sie die
Möglichkeit, diese Datei in die Verweisliste nachzuladen:
Gehen Sie dazu auf die Schaltfläche Durchsuchen
und das untenstehende Fenster erscheint:

Dort suchen Sie die entsprechende Datei auf Ihrem Rechner und laden den
Verweis nach.
Haben Sie alle diese Dinge geprüft, und die Dateien
für die Verweise alle geladen, dann schliessen Sie die
Verweise-Fenster und der fehlerfreien Ausführung des Codes
steht nichts mehr im Wege.
Aber Sicher ist Sicher....
Prüfen Sie dazu mit dem Klicken auf die Schaltfläche Debuggen
--> Kompilieren von 'Name der DB', ob auch alles i.O.
ist.
Läuft der Fortschrittsbalken beim Kompilieren ohne Meldung
durch, ist alles klar, ansonsten meldet sich Access mit einer
Fehlermeldung, und das Kompilieren stoppt an der fehlerhaften Stelle
(Code ist dort Gelb unterlegt).
Dann bitte noch einmal genau nachschauen, ob auch alle Verweise die
richtige Reihenfolge haben, dies kann unter Umständen auch
eine Rolle spielen.
Die Reihenfolge der Verweise wird mit den Prioritäts
Pfeilen im Fenster Verweise verändert, dabei muss
man aber beachten, dass die ersten beiden Verweise nicht zu verschieben
sind.
WICHTIG für DAO - Verwender:
(DAO = Data Access Objects = Methodik zur Datenmanipulation) Passen Sie
auf, wenn Sie DAO und ADO (ActiveX Data Objects = Microsoft Access
bevorzugte Methode der Datenmanipulation) gleichzeitig verwenden! Der
DAO-Code funktioniert NICHT, wenn die ADO-Referenz oberhalb der
DAO-Referenz im Fenster der Verweise geladen ist! Also die
DAO-Bibliothek immer oberhalb der ADO-Bibliothek im Fenster der
Verweise platzieren. Nutzen Sie die Pfeiltasten um dies zu
bewerkstelligen.
Siehe Bild
oben: Fenster Verweise
der DB Tagebuch'.
Näheres wie immer in der entsprechenden Fachliteratur.