none
VB .net / Zugriff auf Access 2010 DB / The Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine RRS feed

  • Frage

  • Hallo,

    ich habe 2 Anwendungen unter Visual Studio 2010 (Sprache VB) erstellt.

    In beiden Anwendungen greife ich auf eine Access 2010 Datenbank zu.
    Ich speichere meine Programmeinstellungen in beiden Projekten in einer Access DB ab.
    Das Setup für die beiden Anwendungen habe ich mit der freien Version von InstallShield erstellt.
    Die Anwendungen werden auf Windows 7 64-bit Rechnern mit den aktuellen Servicepacks installiert

    Nun zu meinem Problem:
    NUR eine (!) Anwendung bringt mir die Fehlermeldung "The Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine".

    Auf meinen 2 Testrechnern (kein Entwicklungsrechner mit VS dabei) laufen auf nur einem Rechner beide Anwendung. Auf dem Rechner auf dem die eine Anwendung nicht läuft ist auch Access 2010 (32bit) installiert.

    Beide Projekte sind für x86 CPU kompiliert und auf beiden Rechnern ist die Microsoft Access Database Engine 2010 (32bit)
    und die 2007 Office System-Treiber: Datenkonnektivitätskomponenten (AccessDatabaseEngine.exe) installiert.

    So greife ich in beiden Anwendungen auf die Access DB zu:
    Imports System.Data.OleDb
    ....
    Private Sub EinstellungenLaden()
            Dim connEinstellungen As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PfadIniDatenbankenClient & "\" & Dateiname_DB_Settings)

            Try
                connEinstellungen.Open()
                daEinstellungen = New OleDbDataAdapter("SELECT * FROM tbl_Einstellungen", connEinstellungen)
                daEinstellungen.Fill(dtEinstellungen)
                dvEinstellungen = dtEinstellungen.DefaultView

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Fehler")
            Finally
                connEinstellungen.Close()
            End Try

        End Sub

    ----------------------------

    Ich habe schon diverse Stunden im Internet gesucht und bis jetzt keine Lösung für mein Problem gefunden.

    Hat jemand eine Idee wie ich mein Problem lösen kann?
    Vielleicht sehe ich ja auch den Wald vor lauter Bäumen nicht...

    Vorab schon vielen Dank für Eure Antworten.

    Gruß - Jörn


    Mittwoch, 14. Mai 2014 11:18

Antworten

  • Hallo Jörn,

    man kann nur eines installieren, die Access Database Engine 2007 oder 2010 oder Office 2010 mit Access. Das liegt daran, dass die ACE wie Office 2007/2010 die gleichen Provider-Zeichenfolge verwenden (Microsoft.ACE.OLEDB.12.0).

    Jegliche Parallelinstallation solltest Du über die Systemsteuerung entfernen und anschließend Office 2010 reparieren. Siehe:

    You receive the error message "You cannot install the 64-bit version of Office 2010 because you have 32-bit Office products installed"

    Dein Programme müssten mit der gleichen Zielplattform (x86 oder x64) wie das installierte Office (32 oder 64-bit) übersetzt sein.

    Gruß Elmar


    Mittwoch, 14. Mai 2014 12:32
  • Hallo Jörn,

    ich würde zuerst mal auf dem betreffenden Rechner in den Taskmanager schauen und dort den Prozess der Anwendung, die nicht läuft. (Also einfach starten, wenn die Fehlermeldung kommt, so stehen lassen, dann Taskmanager öffnen).

    Wenn bei dem Prozess nicht "...*32" steht, läuft der doch nicht als 32 Bit Anwendung. In dem Fall solltest Du nochmal explizit schauen, ob wirklich als x86 kompiliert wurde.

    Wichtig ist auch, dass sämtliche Komponenten (installierte Officeprodukte, Access Database Engine, usw.) als 32 Bit Variante installiert wurden. Alternativ durchgängig alles als 64 Bit Variante. Eine Vermischung ist aber nicht möglich und führt u.a. zu dem von dir festgestellten Fehler.

    Falls alles 32 Bit ist, könnte ich mir nur vorstellen, dass Access nach der Access Database Engine installiert wurde. In dem Fall solltest Du letzteres nochmal nachinstallieren.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 14. Mai 2014 11:39
    Moderator
  • Vielen Dank Stefan und Elmar!

    Ich habe mit der Umstellung der Plattform noch einmal Google bemüht und diese Beschreibung gefunden:

    https://www.vb-paradise.de/index.php/Thread/45179-Ziel-Framework-und-Ziel-CPU-umstellen-Wie-geht-s/

    Bei mir fehlte die richtige Plattform in den "Erweiterten Kompilierungsoptionen".

    Mein Problem ist gelöst und der Tag gerettet. Danke!

    Gruß - Jörn

    Mittwoch, 14. Mai 2014 13:48

Alle Antworten

  • Hallo Jörn,

    ich würde zuerst mal auf dem betreffenden Rechner in den Taskmanager schauen und dort den Prozess der Anwendung, die nicht läuft. (Also einfach starten, wenn die Fehlermeldung kommt, so stehen lassen, dann Taskmanager öffnen).

    Wenn bei dem Prozess nicht "...*32" steht, läuft der doch nicht als 32 Bit Anwendung. In dem Fall solltest Du nochmal explizit schauen, ob wirklich als x86 kompiliert wurde.

    Wichtig ist auch, dass sämtliche Komponenten (installierte Officeprodukte, Access Database Engine, usw.) als 32 Bit Variante installiert wurden. Alternativ durchgängig alles als 64 Bit Variante. Eine Vermischung ist aber nicht möglich und führt u.a. zu dem von dir festgestellten Fehler.

    Falls alles 32 Bit ist, könnte ich mir nur vorstellen, dass Access nach der Access Database Engine installiert wurde. In dem Fall solltest Du letzteres nochmal nachinstallieren.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 14. Mai 2014 11:39
    Moderator
  • Hallo Jörn,

    man kann nur eines installieren, die Access Database Engine 2007 oder 2010 oder Office 2010 mit Access. Das liegt daran, dass die ACE wie Office 2007/2010 die gleichen Provider-Zeichenfolge verwenden (Microsoft.ACE.OLEDB.12.0).

    Jegliche Parallelinstallation solltest Du über die Systemsteuerung entfernen und anschließend Office 2010 reparieren. Siehe:

    You receive the error message "You cannot install the 64-bit version of Office 2010 because you have 32-bit Office products installed"

    Dein Programme müssten mit der gleichen Zielplattform (x86 oder x64) wie das installierte Office (32 oder 64-bit) übersetzt sein.

    Gruß Elmar


    Mittwoch, 14. Mai 2014 12:32
  • Hallo Stefan,

    vielen Dank für die schnelle Antwort.

    In den Prozessen wird die nicht funktionierende Anwendung nicht als "...*32" angezeigt.

    Aber wieso?

    Ich habe die Plattform wie folgt eingestellt:

    Visual Studio > Projektmappe > "rechte Maustaste" Eigenschaften > Konfigurationseigenschaften > Aktiv(Release) Plattform: Aktiv(x86)
    Unter dem Punkt Debug: Aktiv(x86)

    Dann "rechte Maustaste" Projektmappe (Projekt und Setup) neu erstellen

    Mache ich da grundsätzlich etwas falsch, oder habe ich noch etwas übersehen?

    Gruß - Jörn


    Mittwoch, 14. Mai 2014 13:04
  • Vielen Dank Stefan und Elmar!

    Ich habe mit der Umstellung der Plattform noch einmal Google bemüht und diese Beschreibung gefunden:

    https://www.vb-paradise.de/index.php/Thread/45179-Ziel-Framework-und-Ziel-CPU-umstellen-Wie-geht-s/

    Bei mir fehlte die richtige Plattform in den "Erweiterten Kompilierungsoptionen".

    Mein Problem ist gelöst und der Tag gerettet. Danke!

    Gruß - Jörn

    Mittwoch, 14. Mai 2014 13:48