Microsoft.ACE.OLEDB.12.0 Fournisseur ne peut plus ouvrir.mdb sous Windows 8

j'ai une application x64 qui utilise Microsoft.ACE.OLEDB.12.0 fournisseur pour lire une base de données MS Access sur Windows 7 (x64) et il fonctionne très bien (Office 2010 installé).

la même application fonctionnant sous Windows 8 avec Office 2013 installé, échoue avec un message disant que le fournisseur ne peut pas ouvrir les versions précédentes.

sous Windows 8 avec Office 2013 installé, il y a aussi Microsoft.ACE.OLEDB.15.0, mais j'ai vérifié mon code et de s'assurer qu'il est de spécifier la 12.0 dans la chaîne de connexion.

il n'y a différentes "versions" de ce fournisseur -ou est-il quelque chose que j'ai manqué?

j'ai recompilé un programme de test sous Windows 8 pour l'utilisation de la plate-forme x86, et j'ai changé le fournisseur à Microsoft.Jet.OLEDB.4.0 et tout fonctionne de nouveau. Malheureusement, le module fait partie d'un écosystème plus vaste qui doit pouvoir être exécuté sous x64 (en particulier un plug-in pour excel), et la base de données access est téléchargée par la suite à partir du site web d'un fournisseur par l'application, il n'est donc pas pratique de convertir la base de données ou de tout changer à x86.

Merci d'avance.

12
demandé sur Craig D 2013-01-28 16:58:44

6 réponses

il m'est venu à l'esprit de vérifier les versions des fichiers utilisés pour chaque fournisseur, et la chasse à travers le registre, a constaté que sous une installation Windows 8 propre, avec Office 2013 installé, les deux fournisseurs pointent vers la même assemblée.

(C:\Program fichiers\Common Files \ microsoft shared\OFFICE15\ACEOLEDB.DLL)

j'ai ensuite téléchargé et exécuté le moteur de base de données de Microsoft Access redistribuable ( http://www.microsoft.com/en-us/download/details.aspx?id=13255 ) qui a ensuite installé la bonne version du 12.0 provider dans C:\Program fichiers\Common Files \ microsoft shared\OFFICE14\ACEOLEDB.DLL et l'application se comporte comme prévu.

il semblerait étrange que MS ait inclus un fournisseur de marque 12.0 qui ne se comporte plus comme 12.0.

quoi qu'il en soit-espoir qui aide quelqu'un de 4-5 heures de tirer les cheveux...

Craig

16
répondu Craig D 2013-01-28 13:41:21

le problème avec l'installation de L'as redistribuable plus ancien est que la prochaine fois que vous exécutez Access dans Office 2013, Office va" réparer " lui-même et passer le pointeur pour la version 12 de nouveau dans le répertoire Office15.

5
répondu Chris I 2014-06-10 18:13:39

j'utilise Windows 8.1 64bit et Microsoft Office 2013 J'ai installé "Microsoft Access Database Engine 2010 Redistribuable" mais rien N'a changé et a obtenu la même erreur mais ! L'installation du " pilote de système de bureau 2007: Composants de connectivité de données " a résolu le problème.

j'ai trouvé cette solution à travers ce lien .

essayer de se connecter à une base de données D'accès dans visual studio mais garder obtenez cette erreur?

essayez d'installer ce premier: http://www.microsoft.com/download/en/details.aspx?id=13255

cependant, si, comme moi, cela ne fonctionne pas pour vous, essayez le suivant méthode:

NOTE: cela fonctionne pour office 2010 même si c'est pour 2007 bureau, ne me demande pas pourquoi c'est juste does:)

  1. téléchargez et installez ceci: http://www.microsoft.com/download/en/confirmation.aspx?id=23734

  2. dans VS cliquez sur Ajouter source de données, suivez l'assistant et profitez! :)

4
répondu Mahdi Rashidi 2014-06-04 14:15:09

juste pour clarifier le comportement décrit par OP:

With Office 2013 (ACE 15.0) Microsoft annuled support for mdb-Files created with Jet 3.x et avant (C'est-à-dire Access 97 et avant). Je présume donc fortement que la base de données de L'OP qui a causé le problème était un Access97-DB. Jet 4.0 bases de données (Access 2000, aslo .mdb) sont toujours supportés et ne produiront pas d'erreurs.

le fait Qu'Office 2013 enregistre également son nouveau les pilotes que des versions antérieures est une tentative délibérée de MS pour conserver beaucoup de programmes et de scripts de travail, qui sont codés en dur le nom du fournisseur intégré. Comme vous l'avez reconnu sur votre mise à niveau, cela ne garde beaucoup de travail, pas tous ...

3
répondu Stefan 2014-05-23 08:12:11

en outre, il semble que la version 32 bits des travaux redistribuables pour Office 2013_64 bit sur un OS Windows 64bit tandis que la version 64 bits du redistribuable n'a pas dans mon cas

1
répondu Damilola 2013-08-12 12:37:53
  1. installer Microsoft Access Database Engine 2010 Redistribuable x 64 ( http://www.microsoft.com/en-us/download/details.aspx?id=13255 )
  2. convertissez votre base de données dans un nouveau format (.BMD. >- accdb)
  3. recherche projet entier pour" Microsoft.Jet.OleDb.4.0" et de le remplacer par Microsoft.ACE.OLEDB.12,0
1
répondu user 2015-04-16 22:34:54