OleDb Excel en environnement 64 bits ?! Mais oui c'est possible !

Si vous développez une application 64 bits et que vous cherchez à utiliser le driver OleDb JET 4.0, vous allez avoir le message suivant :

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Alors déjà pourquoi ce message ?

Parce que très logiquement votre application 64 bits va rechercher le driver 64 bits OLEDB 4.0 or celui-ci a de grande chance de n'être installé qu'en 32 bits sur le serveur...
D'ailleurs pour le vérifier, il faut lancer sur votre machine 64 bits
windows\syswow64\odbcad32.exe

(syswow64 = System Windows 32 bits On Windows 64 bits, les programmes qui s'y trouvent permettent de lancer des outils communs en version 32 bits dans l'environnement 64 bits.)

Donc en exécutant odbcad32.exe , vous allez sans doutes pouvoir confirmer dans l'onglet DRIVERS que votre pilote JET 4.0 est bien installé, MAIS en 32 bits. Et donc votre programme 64 bits ne peut pas l'utiliser.
Il faudrait installer JET 4.0 en 64 bits. Le problème c'est que ça n'existe pas !

Heureusement, Microsoft a depuis quelques temps réalisé de nouveaux drivers OLEDB 64 bits qui vont nous permettre de procéder à l'installation de ce dont on a besoin :
http://www.microsoft.com/downloads/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D&displayLang=fr

Oui oui oui, le package que vous allez installer (version en 64 bits) va bien installer ce qu'il faut pour accéder aussi à EXCEL ! et à tout ce que vous voudrez d'ailleurs...

Vous allez pouvoir vous assurer, après installation du package, en lançant odbcad32.exe (cette fois lancez la version 64 bits et non pas celle qui se trouve dans syswow64) que vous disposez de nouveaux drivers dont un pour EXCEL.

Votre chaîne de connexion devra ressembler à ceci :

string connectionString = "Provider=
Microsoft.ACE.OLEDB.12.0;Data Source=" + pathToExcelFile   
                                             + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";";                 

 

Et enfin, en environnement 64 bits... Le plaisir de tout voir fonctionner de manière optimale...

 

P.S. : il n'est pas possible d'installer sur une même machine 64 bits, des versions 32 bits et 64 bits d'un même driver. Ca veut dire que vous ne pourrez pas installer le package ci-dessus cité à la fois dans sa version 32 bits et 64 bits... (logique , sinon, windows ne saurait plus où donner de la tête...)

A propos de l'auteur

 

Développeur depuis plus de 10 ans, j'ai commencé la programmation dès l'âge de 9 ans sur un PC 8088 !!

GW-Basic, Pascal, Turbo Pascal, Delphi ont fait mes bases... Puis Java , bien plus tard... Pour enfin avoir découvert le C#... Quel plaisir de développer avec ce langage des solutions ASP.NET... Le développement Web comme jamais je ne pouvais l'imaginer possible :)

Aujourd'hui titulaire du MCSD VS 6.0, MCAD .NET, et MCT ...

Sur ce blog, je souhaite partager des choses simples mais efficaces... Des problèmes de tous les jours que l'on peut rencontrer et qu'il est simple de régler :)

Mes certifications

Month List