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.

Den VB-Editor starten

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

Verweise aufrufen...

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

Verweise prüfen...

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:

Verweise nachladen...

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.