it-swarm.com.de

Microsoft.ACE.OLEDB.12.0 Provider kann .mdb unter Windows 8 nicht mehr öffnen

Ich habe eine x64-Anwendung, die den Microsoft.ACE.OLEDB.12.0-Anbieter verwendet, um eine MS Access-Datenbank unter Windows 7 (x64) zu lesen, und es funktioniert einwandfrei (Office 2010 installiert).

Dieselbe Anwendung, die unter Windows 8 mit Office 2013 ausgeführt wird, schlägt mit der Meldung fehl, dass der Anbieter frühere Versionen nicht öffnen kann.

Unter Windows 8 mit installiertem Office 2013 gibt es auch Microsoft.ACE.OLEDB.15.0, aber ich habe meinen Code noch einmal überprüft und bin sicher, dass er die 12.0 in der Verbindungszeichenfolge angibt.

Gibt es verschiedene "Versionen" dieses Providers? Oder habe ich etwas verpasst?

Ich habe ein Testprogramm für die Verwendung der x86-Plattform unter Windows 8 neu kompiliert und den Anbieter in Microsoft.Jet.OLEDB.4.0 geändert, und es funktioniert wieder alles. Leider ist das Modul Teil eines größeren Ökosystems, das unter x64 ausgeführt werden muss (insbesondere ein Plug-in für Excel), und die Zugriffsdatenbank wird von der Suite von der Website des Anbieters von der Anwendung heruntergeladen Es ist nicht praktisch, die Datenbank zu konvertieren oder alles in x86 zu ändern.

Danke im Voraus.

12
Craig D

Ich kam mir vor, die Versionen der für jeden Anbieter verwendeten Dateien zu überprüfen und durch die Registrierung zu stöbern. Dabei wurde festgestellt, dass bei einer sauberen Installation von Windows 8, bei der Office 2013 installiert ist, beide Anbieter auf dieselbe Assembly verweisen.

(C:\Programme\Gemeinsame Dateien\Microsoft shared\OFFICE15\ACEOLEDB.DLL)

Anschließend habe ich die Microsoft Access Database Engine Redistributable ( http://www.Microsoft.com/en-us/download/details.aspx?id=13255 ) heruntergeladen und ausgeführt, die dann die richtige Version des 12.0-Anbieters installierte in C:\Programme\Gemeinsame Dateien\Microsoft shared\OFFICE14\ACEOLEDB.DLL und die Anwendung verhält sich wie erwartet.

Es scheint seltsam, dass MS einen Anbieter mit der Bezeichnung 12.0 aufgenommen hat, der sich nicht mehr wie 12.0 verhält.

Wie auch immer - hoffe das hilft jemandem beim 4-5 Stunden langem Haarziehen ...

Craig

16
Craig D

Das Problem bei der Installation der älteren ACE-Redistributable besteht darin, dass sich Office beim nächsten Ausführen von Access in Office 2013 "repariert" und den Zeiger für Version 12 wieder in das Office15-Verzeichnis wechselt.

5
Chris I

Ich verwende Windows 8.1 64bit und Microsoft Office 2013 Ich installierte "Microsoft Access Database Engine 2010 Redistributable", aber Nothing Changed und bekam dieselbe Fehlermeldung, ABER! Installation des "2007 Office System Driver: Datenkonnektivitätskomponenten" wurde das Problem gelöst.

Ich habe diese Lösung durch diese link gefunden.

sie versuchen, eine Verbindung zu einer Access-Datenbank in Visual Studio herzustellen, behalten jedoch diesen Fehler bekommen?

versuchen Sie zuerst, dies zu installieren: http://www.Microsoft.com/download/de/details.aspx?id=13255

wenn dies jedoch für mich nicht funktioniert, versuchen Sie Folgendes: __. Methode:

HINWEIS: Dies funktioniert für Office 2010, obwohl es für 2007 ist Büro, frag mich nicht warum es gerade so ist :)

  1. laden Sie dieses herunter und installieren Sie es: http://www.Microsoft.com/download/de/confirmation.aspx?id=23734

  2. klicken Sie in VS auf Datenquelle hinzufügen, folgen Sie dem Assistenten und genießen Sie es! :)

4
Mahdi Rashidi

Nur um das von OP beschriebene Verhalten zu verdeutlichen:

Mit Office 2013 (ACE 15.0) hat Microsoft die Unterstützung für mit Jet 3.x und zuvor erstellte mdb-Dateien (d. H. Access 97 und früher) abgebrochen. Ich gehe daher fest davon aus, dass die Datenbank des OP, die das Problem verursacht hat, eine Access97-DB war. Jet 4.0-Datenbanken (Access 2000, auch MDB) werden weiterhin unterstützt und erzeugen keine Fehler.

Die Tatsache, dass Office 2013 auch seine neueren Treiber als frühere Versionen registriert, ist ein bewusster Versuch von MS, viele Programme und Skripts mit einem fest programmierten Anbieternamen aufrechtzuerhalten. Wie Sie bei Ihrem Upgrade erkannt haben, bleiben hier nur viele arbeiten, nicht alle ...

3
Stefan
  1. Installieren Sie Microsoft Access Database Engine 2010 Redistributable x 64 ( http://www.Microsoft.com/en-us/download/details.aspx?id=13255 )
  2. konvertieren Sie Ihre Datenbank in ein neues Format (.mdb -> .accdb)
  3. Durchsuchen Sie das gesamte Projekt nach "Microsoft.Jet.OleDb.4.0" und ersetzen Sie es durch Microsoft.ACE.OLEDB.12.0
1
user

Außerdem scheint die 32-Bit-Version von Redistributable auf einem 64-Bit-Windows-Betriebssystem für Office 2013_64-Bit zu funktionieren, während die 64-Bit-Version von Redistributable in meinem Fall nicht der Fall war

1
Damilola