Category : .Net | Author : Chtiwi Malek | First posted : 3/7/2012 | Updated : 11/27/2012
Tags : oledb, windows, jet, 32 bit, 64 bit,
64 bit version of ‘Microsoft.Jet.OLEDB.4.0’ Office 2007/2010 Jet drivers

64 bit version of ‘Microsoft.Jet.OLEDB.4.0’ Office 2007/2010 Jet drivers

When an application or a website page hosted on a 64 bit system tries to connect to a Jet driver, you can get this error:

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

You are getting this error because the Jet driver you have installed need 32 bit OS & system to function, Here’s how to update to a new 64-bit compatible database engine:

1/ Download the Microsoft Access Database Engine 2010 Redistributable, you can choose from the 32 bit or 64 bit version depending on your machine and install it on your server

2/ in your application or website code, update the connection string from “Provider=Microsoft.Jet.OLEDB.4.0; “  to  “Provider=Microsoft.ACE.OLEDB.12.0;”

3/ recompile and run your application

That’s all, but if you don’t want to use the new OLEDB you still can force the Jet OLEDB 4.0 to run on a 64 bit environment :

About the author :
Malek Chtiwi is the man behind
34 years old full stack developer.
Loves technology; but also likes design, photography and composing music.
Comments & Opinions :
I could not fix this error
The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server.
- by Akhil on 7/26/2015
Thank you
Thank you very much Malek Chtiwi!!!!!
God Bless U!!!!!!
- by Rocky Royalson on 2/8/2016
i am on my project compiler options side but can not find target cpu options
- by Rashad on 10/24/2016
Software installed but the error is coming
I installed a software but it is showing the ‘Microsoft.Jet.OLEDB.4.0’ error. I'm using Windows 8, 64 bit. I installed But after installing and downloading i don't know who to move ahead. I don't know how to follow your second and third steps.
- by Saad on 1/20/2017
The microsoft.jet oledb 4.0 is not registered in local machine.
gracias por tu solucion, me resolvio el problema que tenia.
- by ramon on 7/21/2017
(IntPtr.Size == 8 ? "Microsoft.ACE.OLEDB.12.0" : "Microsoft.Jet.OLEDB.4.0");
If you create a connection string dynamically use this:
(IntPtr.Size == 8 ? "Microsoft.ACE.OLEDB.12.0" : "Microsoft.Jet.OLEDB.4.0");
- by Roj on 12/19/2019
Leave a Comment:
Name :
Email : * will not be shown
Title :
Comment :