Accessversion der MDB / MDE feststellen



  • Hallo an alle Hilfsbereiten,

    vielleicht zunächst kurz zum Hintergrund:
    Mehrere Accessversionen auf einem PC führen bekanntlich dazu, dass man Accessdatenbanken nicht mehr zuverlässig per Doppelklick öffnen kann, da grundsätzlich immer die zuletzt geöffnete Accessversion dabei geöffnet wird, was nach Murphy's Gesetz dann grundsätzlich die falsche ist 😉

    Ich habe also ein kleines Tool geschrieben, dass eine Textdatei ausliest. In dieser Datei stehen alle auf dem PC vorhandenen Datenbanken und die Angabe, mit welcher Accessversion sie geöffnet werden müssen. Für jede Datenbank gibt es in dem Tool einen Button und bei Betätigen dieses Buttons wird die entsprechende Accessversion gestartet und die zu öffnende Datenbank als Argument übergeben.
    Klappt wunderbar.

    Ich würde gerne die Textdatei etwas vereinfachen und zwar in der Form, dass nur noch die Datenbanken eingetragen werden müssen.
    Beim Betätigen des Buttons soll das Tool also zunächst aus der zu öffnenden Datenbank selber die Accessversion auslesen, mit der sie erstellt worden ist,
    dann diese Accessversion starten und die Datenbank selber wieder als Argument übergeben. Jetzt stellt sich für mich die große Frage:
    Wie kann ich die Accessversion ermitteln, mit der die MDB bzw. MDE erstellt worden ist?

    Für VB habe ich was im Netz gefunden:

    Set objAccess = CreateObject("Access.Application")
    objAccess.OpenCurrentDatabase "C:\Scripts\Test.mdb"

    intFormat = objAccess.CurrentProject.FileFormat

    Select Case intFormat
    Case 2 Wscript.Echo "Microsoft Access 2"
    Case 7 Wscript.Echo "Microsoft Access 95"
    Case 8 Wscript.Echo "Microsoft Access 97"
    Case 9 Wscript.Echo "Microsoft Access 2000"
    Case 10 Wscript.Echo "Microsoft Access 2003"
    End Select

    Quelle: http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct05/hey1007.mspx

    (Anmerkung am Rande zum Skript: Da die Rückgabewerte wohl die Versionsnummern sind, ist der 2003er Wert falsch. Die Version 10 war Office XP, Access 2003 ist Version 11, ist auch so in der Registry eingetragen)

    Mir würde es voll und ganz reichen, wenn die Versionsangabe (in welcher Form auch immer [short int, char, etc.]) in eine Variable geschrieben würde, so wie oben in "intFormat". Damit könnte ich sehr gut weiterarbeiten.
    Ich habe jedoch leider nicht die geringste Ahnung, wie ich das in C++ umsetzen könnte, weil ich nicht weiß, mit welcher Funktion ich die Access-Versionsnummer, mit der eine MDB / MDE erstellt worden ist, ermitteln kann.

    Kann mir vielleicht einer helfen?

    Danke.



  • Vielleicht hilft Dir das weiter link


Anmelden zum Antworten