Warum Du das wissen willst

Nicht jede Access-Version kann alles.
Ab Access 2019 gibt’s moderne Symbole, neue Eigenschaften – und gelegentlich andere Bugs.
Wenn Du gezielt Features nutzt, solltest Du vorher prüfen, welche Version läuft.

Die einfachste Methode: SysCmd + Application.Version

Mit Application.Version bekommst Du die Office-Version als Text zurück.
Leider nicht ganz eindeutig – „16.0“ steht für 2016, 2019, 2021 und 365.

Deshalb brauchst Du mehr Kontext.

Beispiel:

Debug.Print Application.Version  ' Gibt z. B. "16.0" zurück

Hilft nur bedingt. Deshalb brauchst Du Plan B.

Methode 2: Prüfen der Access-Buildnummer

Mit SysCmd(acSysCmdAccessVer) bekommst Du die interne Access-Version.
Noch besser: Lies die Buildnummer direkt aus Access.Application.Build.

Beispiel:

Sub ZeigeBuildInfo()

    Dim version As String
    Dim build As String

    version = Application.Version
    build = SysCmd(acSysCmdAccessVer)

    MsgBox "Access-Version: " & version & vbCrLf & _
           "Build: " & build

End Sub

Damit weißt Du zumindest, ob Du bei 16.0 bist – oder darunter.

Methode 3: Registry lesen (für Hartgesottene)

Wenn Du ganz genau wissen willst, ob es Access 2021 ist, musst Du in die Registry gucken.
Das geht per VBA mit der WScript.Shell.

Beispiel:

Function LeseAccessProduktName() As String

    On Error GoTo Fehler

    Dim shell As Object
    Dim key As String
    Dim produkt As String

    Set shell = CreateObject("WScript.Shell")
    key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access\InstallRoot\ProductName"

    produkt = shell.RegRead(key)
    LeseAccessProduktName = produkt
    Exit Function

Fehler:
    LeseAccessProduktName = "Nicht gefunden"

End Function

Das klappt nicht auf jedem System. Vor allem bei 64-Bit Office auf 64-Bit Windows musst Du ggf. in den Wow6432Node-Pfad schauen.

Methode 4: Feature Detection (empfohlen)

Wenn Du auf Nummer sicher gehen willst: Prüfe direkt, ob eine bestimmte Funktion existiert.

Beispiel: Dark Mode verfügbar?

Function IstDarkModeUnterstützt() As Boolean
    On Error Resume Next
    Dim dummy As Boolean
    dummy = Application.GetOption("Use system setting for theme")
    IstDarkModeUnterstützt = (Err.Number = 0)
    Err.Clear
End Function

Das ist der zuverlässigste Weg.
Nicht hübsch, aber effektiv.

Tabelle: Office-Versionen und Access-Version

Office-VersionAccess.VersionBuild-Anhaltspunkt
Office 201616.0< 10300
Office 201916.0ca. 10300–13500
Office 202116.0ca. 14500–15300
Office 36516.0> 15000, variabel

Mein Fazit: Es geht – aber nicht direkt

Access verrät Dir seine genaue Version nicht freiwillig.
Aber mit ein bisschen Nachdenken kommst Du ran.
Ich prüfe meist den Build – oder versuche es mit Feature Detection.

Wenn Du magst, bau ich Dir eine Funktion, die das alles kombiniert.
So wie ein norddeutscher Taschenmesser-VBA-Snippet.
Macht keinen Lärm – aber funktioniert.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert