Hallo Liebe Comunity
Ich muss eine Datenbank aus AC2.0 nach AC2003 konvetieren.
Nachdem ich dies getan habe, bringt er mir folgenden Fehler:
Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert.
Markieren tut er mir folgende Zeile: Private Function GetMDBName2(gfni As GetFileNameInfo, ByVal fopen _
As Integer) As Long
Kann mir vielleicht jemand weiterhelfen, wo da der Fehler liegt? Bin leider keine Spezialistin auf ACCESS.
Vielen Dank schon mal.
Gruss Nicole
Hallo Nicole,
prinzipiell ist es so, dass Access mit sog. Verweisen funktional erweitert werden kann. Wenn du z.B. einen HTML-Browser brauchst, kannst du eine externe "Funktionen-Sammlung" in Access "bekannt machen", die entsprechende Funktionen zur Verfügung stellt: Access nennt das "Verweis". Es gibt verschiedene Arten solcher Verweise, oft sind es DLLs.
Wenn du nun von Ac2.0 nach Ac2003 migrieren möchtest, so müssen in Ac2003 auch die entsprechenden Verweise gesetzt sein. Schau also zunächt nach, welche Verweise in Ac2.0 gesetzt sind. Geht glaube ich auch schon bei Ac2.0 im VBA-Editor unter Extras->Verweise.
Es geht hier um Verweise, die ein Häkchen für "aktiv" haben. Schau dir die Namen der betr. Verweise an und suche passende Namen in der Verweis-Liste unter Ac2003. Hier gibt es vielleicht neuere Versionen, die aber in der Regel abwärts-kompatibel sind (also Version 3 kann auch mit Code umgehen, der für Version 1 geschrieben wurde).
In deinem Beispiel tippe ich auf die Scripting-Library. Angemeckert wird der Datentyp "GetFileNameInfo". Du brauchst also einen Verweis auf eine Library, in der "GetFileNameInfo" definiert ist.
Der Fehler ist wahrscheinlich nur der erste von vielen, die noch folgen werden. Access bricht die Kompilierung nämlich beim ersten Fehler ab und es geht erst dann weiter, wenn man diesen Fehler beseitigt hat.
Wenn in Ac2.0 ein Verweis auf das aktuelle Verzeichnis deutet, ist die Library (meist DLL oder TLB) im gleichen Verzeichnis gespeichert wie die MDB selbst. Dann kopiere diese Libraries in das Verzeichnis deiner Ac2003-Datenbank und setze die Verweise entsprechend.
Dies ist - leider - nur eine grobe Beschreibung der Maßnahmen, die du ergreifen müsstest. Möglicherweise gibt es noch mehr zu tun (z.B. ActiveX-Steuerelemente anpassen). Leider kann ich Ac2.0 bei mir nicht mehr starten, ist einfach schon zu lange her.
Viel Glück jedenfalls bei deinem Vorhaben und ich hoffe, dass ich dir jedenfalls etwas helfen konnte.
Gruss
crystal
Hallo Crystal
Vielen Dank für deine Antwort. Ich werde mal mein Glück versuchen :-)
Hallo Crystal
Jetzt habe ich lange gesucht und bin dann im Internet auf einen Artikel gestossen. Laut diesem, gab es in ACC2.0 noch gar keine Verweise :-(
Wenn ich versuche, das Modul in ACC2.0 zu öffnen, kommt da nur eine kleine Seite, w vielleicht 2 Sätze drin stehen, aber kein Code. Öffne ich das konvertierte Modul....kommen mehrere Seiten VBA.
Komm ich an den Code irgendwie anders ran? Im VBA-Editor kann ich das jedenfalls nicht öffnen.
Gruss Nicole
Beim Vegleich mit einer anderen konvertierten Datenbank, passen die Verweise aber.
Bei GetFileNameInfo scheint es sich eher um einen benutzerdefinierten Typ zu handeln, der in einer entsprechenden Type-Deklaration vorliegen sollte. Zeige uns bitte einmal den kompletten Code der Funktion - oder besser noch des gesamten Moduls (Text gezippt als Anhang hier hochladen).
Hallo Nicole,
Ich fand folgenden Artikel:
https://support.office.com/de-de/article/Importieren-einer-Access-2-0-Datenbank-in-eine-Access-2007-Datei-2e9d8851-101d-4407-a881-65d06bb12aa7
Darin ist auch beschrieben, wie man bei Acc2003 vorgeht: ein Tool von Microsoft laden. Leider fehlt ein Link und bei Microsoft habe ich das Tool nicht gefunden. Aber bei cnet:
http://de.download.cnet.com/Access-2-0-Converter-for-Access-2003/3000-2070_4-10743423.html
Probier's mal damit. Vielleicht klappt's. (Tool natürlich vorher auf Viren prüfen.)
Viel Erfolg!
crystal
Hallo,
möglicherweise kann auch der folgende Link hier weiterhelfen:
"Wiedereinbindung NWIND" aus VORLAGEN.MDB anpassen (2.0) (https://support.microsoft.com/de-de/kb/504860)
Dort ist u.a. die fehlende Type-Deklaration enthalten.
Hallo
Vielen Dank euch allen für eure Antworten. Ich habe das Problem zwischenzeitlich gelöst.
Gruss Nicole
Hallo Nicole,
schön, dass du das Problem lösen konntest.
Kannst du uns auch verraten, wie (und die Frage auf "erledigt" setzen)?
Das wäre nett.
Gruß,
crystal