Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

DAO-Fehler nach Migration zu A2007

Wer seine Anwendung von Access 2003 oder ltern nach Access 2007 migriert, stt mglicherweise auf Fehler beim Ausfhren von DAO-Methoden oder dem Aufruf von DAO-Eigenschaften. Dieses Problem ist viel banaler, als man denkt und lsst sich in Sekunden beheben.

Fehlerbeschreibung

Der Einsatz von bestimmten DAO-Methoden wie NoMatch, FindFirst und anderen fhrt zum Laufzeitfehler "Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden".

Fehlerbehebung

Imgrunde handelt es sich bei dem Fehler um eine alte Geschichte: Die Anwendung enthlt Verweise auf die beiden Bibliotheken fr den Datenzugriff (DAO und ADODB), die im Verweise-Dialog der alten Version in der richtigen Reihenfolge angelegt sind (hier: erst DAO, dann ADODB). Wenn man dann nach Access 2007 migriert, schmeit Access den DAO-Verweis raus und fgt den neuen ACEDAO-Verweis ein, der zwar abwrtskompatibel ist, aber hinter dem ADODB-Verweis einsortiert wird. Hat der Anwender nun ein Recordset-Objekt mit der Anweisung

Dim rst As Recordset

deklariert, geht Access davon aus, dass es sich um ein ADODB-Objekt handelt, da diese Bibliothek im Verweise-Dialog ganz oben steht.

Das Problem lsst sich auf zwei Arten beheben:

  1. Die schnelle Methode: Man verschiebt einfach den ACEDAO-Verweis (Bibliothek Microsoft Office 12.0 Access Database Engine Object Library) nach oben, und zwar ber den ADODB-Eintrag (Bibliothek Microsoft ActiveX Data Objects 2.1 Library).
  2. Die aufwendigere, aber bessere Methode: Man deklariert Objekte unter Angabe der Bibliothek, in der sie enthalten sind, also beispielsweise mit Dim rst As DAO.Recordset. Die Reihenfolge der Verweise im Verweise-Dialog sind dann vllig unwichtig.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.