none
Ist die AccessDatabaseEngine.exe installiert RRS feed

  • Frage

  • Hi zusammen, um zu prüfen ob die AccessDatabaseengine auf einem Rechner installiert ist, prüfe ich folgendes.

    Gibt es da noch andere Lösungswege?
    Wenn nicht installiert sind, führe ich das Setup aus.

       Dim folder As String
            Dim filename As String
            folder = Environment.GetEnvironmentVariable("CommonProgramFiles(x86)")
            If IsNothing(folder) Then
                folder = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)
            Else
                If folder = "" Then
                    folder = Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)
                End If
            End If

            filename = folder & "\microsoft shared\OFFICE14\ACECORE.DLL"

            If File.Exists(filename) Then
                Return True
            Else
                Return False
            End If

    Dienstag, 13. November 2012 15:21

Antworten

  • Hallo,

    anstatt beide Verzeichnisse durch zu probieren, solltest Du auf Environment.Is64BitOperationSystem prüfen, wenn ja, gibt es auch (x86).

    Alternativ könnte man auch prüfen ob der notwendige Typ registriert wurde:

            Dim oledbProvider = Type.GetTypeFromProgID("Microsoft.ACE.OLEDB.12.0")
            If oledbProvider IsNot Nothing Then
                Console.WriteLine("Access Database provider exists")
            End If
    

    Schönheitsfehler insgesamt:
    Sollte der Anwender ein 64-Bit-Office installiert haben, kannst Du keine 32-Bit Access-Database-Engine installieren, da dort entweder x86 oder x64 gilt.

    Gruß Elmar

    Dienstag, 13. November 2012 15:47
    Beantworter

Alle Antworten