OleDbConnection.Open() wirft Exception

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Dev77.

    OleDbConnection.Open() wirft Exception

    Hallo miteinander,

    eins vorweg: Verzeiht mir bitte, falls mein im Anschluss geschildertes Problem schon mal in diesem Forum behandelt wurde. Zumindest konnte ich es hier nicht finden..

    Nun mein Problem: Ich arbeite mich in ein VB.NET-Programm unter Visual Studio 2017 ein. Beim Programmstart wird eine Access-Datei geöffnet und ausgelesen.
    Das Öffnen der Access-Datei wird mittels der OleDb-Funktion OleDbConnection.Open() aus System.Data.OleDb vorgenommen, allerdings wirft die Open-Methode die Exception "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine".
    Das Problem scheint kein Einzelfall zu sein, sondern konnte ich auch schon in diversen Blogs wiederfinden, wo auch so manche Lösungen diskutiert wurden, allerdings halfen diese mir nicht. Bspw. wird empfohlen, von Microsoft die Microsoft.AccessRuntime zu installieren.
    Ich habe Windows 10 mit 64 Bit und Access 2019 in einer 32-Bit-Version.
    Das VB.NET-Programm wird mit der Konfiguration x86 kompiliert und gestartet.
    Hat jemand von euch ein vergleichbares Problem gehabt und konnte es lösen? Falls ja, was würdet ihr mir raten?

    Vielen Dank schon mal im Voraus!

    Grüße, Dev77
    jo, das habich auch immer.
    Entweder es muss "ACE.OLEDB - Blabla" sein oder "Microsoft.Jet.oledb - blabla".
    Immer wenn man den einen nimmt, ist der andere der richtige.
    Beide findet man glaub auf ConnectionStrings.com

    Vielleicht muss man acuh "Any.Cpu" komilieren, oder das grad nicht - vlt. meldet sich ja noch einer, der das Problem wirklich versteht.

    Übrigens vielleicht kann ich dich für die grafischen Programmiertechniken interessieren, die .Net für Datenverarbeitung bereithält: vier Views-Videos

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Danke erstmal für deine Antwort!
    Über das von dir vorgeschlagene ConnectionStrings bin ich auf den Hinweis gelangt, dass die Installation der AccessRuntime, welche Microsoft in 32 und 64 Bit - Varianten zur Verfügung stellt, verweigert wird, wenn bspw. der 32-Bit-Treiber zu installieren versucht wird bei installiertem 64-Bit-Office. In diesem Fall kann diese Variante jedoch mit der quiet-Option installiert werden: In einem Kommandofenster über cmd bspw. "AccessRuntime.exe /quiet". Dies habe ich auch probiert und es funktioniert nun ohne Probleme!
    Vielen Dank nochmals dafür!