In einem Access-Modul, das in einer alten Version von Microsoft Access geschrieben worden ist, funktionierte leider beim Öffnen in der neuesten Access-Version eine der in VBA geschriebenen Funktionen nicht mehr.
Die alte Datei war noch eine .mdb-Datei, stammt also aus längst vergangenen Tagen. Öffnen lassen sich diese Dateien in einem neuen Access ohne Probleme. Die kommen insbesondere dann auf wenn auch VBA verwendet worden ist.
Dies kann sich z. B. durch eine Fehlermeldung wie die folgende äußern:
Ihre Microsoft Access Datenbank oder Ihr Projekt enthält einen fehlenden oder fehlerhaften Verweis auf die Datei ‚OFFOWC.DLL‘ Version 1.1..
* Sie müssen diesen Verweis beheben, um sicherzustellen, dass die Datenbank oder das Projekt ordnungsgemäß funktionsfähig ist.
Wenn man dann in den Quellcode schaut und versucht diesen auszuführen könnte folgende Fehlermeldung auftauchen und die schuldige Funktion markiert werden:
Kompilierungsfehler:
Projekt oder Bibliothek nicht gefunden
In meinem Fall führte die Date-Funktion zum beschriebenen Fehler:
1 |
Today = Format(Date, "yyyymmdd") |
Lösung
Auf der Suche nach einem Konvertor-Tool fand ich nur fragwürdige Ergebnisse, weshalb ich dann doch nach einer manuellen Lösung gesucht habe.
Zur Behebung war das Modul einfach zu kopieren, so wie es ist, und einfach in einem aktuellen Access-Projekt einzufügen. Dadurch wurde die aktuelle DLL wahrscheinlich irgendwo innerhalb der neuen Access-Datei referenziert und genutzt. Dies wird natürlich nur funktionieren, wenn die genutzte Funktion in der aktuellen Version der DLL noch vorhanden ist und auch die Werte liefert, wie sie von der eigenen Access-Anwendung erwartet und genutzt werden.
Fazit
Eigentlich könnte man sagen, dass es doch recht einfach ist eine alte Access-Datei zu „konvertieren“. Wenn man allerdings genau darüber nachdenkt stellt sich eher die Frage warum Access nicht automatisch die neuen DLLs nutzt, wenn es die alten Access-Dateien ja trotzdem öffnet?!