Wil Peck

Experience is something you don't get until just after you need it.


News


Technorati Tags:

I recently ran into this issue when I tried to connect to an Microsoft Access database with a .NET application I had written.  In case you’ve ran into this issue on a .NET client application and you’re running on x64 you may need to change the Platform Target to x86 on the build tab your project properties in Visual Studio.  This will force your application to run in 32 bit mode.  IIRC MS has not and does not intend to build a 64 bit version of the OLEDB drivers which is what the error stems from.


Comments

Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Nick Greiner on 5/18/2009 7:18 AM
Thanks for the suggestion on this one. I have a C# method that uses OLEDB to read an Excel file (.xls) into a DataTable. It worked well on my development machine (x86) but when I tested it on our 64-bit uat box I got the Jet error. This could have taken hours to solve but your post helped me solve it in 5 minutes! Good start to the day!
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Tony Arslan on 8/21/2009 10:00 AM
Thanks for the tip. I have recently upgraded my dev machine to Vista 64bit, when I tried to run my apps which access OLEDB, they all failed. You saved me a lot of time troubleshooting or possibly going back to 32bit which I still think it may not be a very bad idea. I wonder if 64bit is more headache than it’s worth.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Wil Peck on 8/21/2009 3:19 PM
Glad I could help, I have been running 64 bit for a few months now and am glad I am just for the sheer fact I have 8GB of RAM :)

I haven't noticed any other problems related to running 64bit on my workstation. On my laptop however I have had some problems recognizing various hardware devices.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Anthony Bosco on 9/16/2009 3:06 AM
I am trying to do what you have suggested but I am unable to change the build platform in visual web developer 2008 express edition. it does not have any other option other than "Any CPU" in the Build configuration manager. Please help
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Wil Peck on 9/16/2009 7:44 AM
@Anthony,
I am surprised that you cannot change the build platform in the express edition. Unfortunately I don't have time to download it and check it out myself. The compiler looks at the /platform: switch and uses its value, x86 in this case to build the assembly (csc.exe /platform:x86). Maybe you can specify x86 from the Build / Configuration Manager. Additionally you might do some checking around how you can specify compiler switches from MSBuild and just use MS Build directly to create your assembly. I did a couple of quick searches to see how to specify switches from Visual Web Developer but couldn't find any.

Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by sergio gonzalez on 10/3/2009 10:21 AM
es un buen microsoft
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by sergio gonzalez on 10/3/2009 10:23 AM
IS GOOD MICROSOFT
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by T. Senthil Kumar on 10/6/2009 11:15 PM
Connestion is not working
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Shivam Rajvansh on 12/2/2009 10:12 PM
Hi,
I am using Vista x64-based PC and got this error while it was working fine on the other PC with Vista x86-based PC.
For this open Your Project Properties > Compile > Advanced Compiler Settings (button at the bottom).

In the Advanced Compiler Settings dialog box change Target CPU: to x86. Save all your changes.
This worked for me.
Thank you
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by K.Prabakaran on 12/16/2009 9:15 PM
Hi. My application is windows application. i am changing to target paltform to x86. when it run windows vista(64 Bit). the application has same error(The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.). what can i do resolve this issue?
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Jenarie on 1/22/2010 5:04 PM
Can someone tell me how to change the target platform to x86.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Jakob Flygare on 2/1/2010 8:44 AM
I recieve the error when I am deploying a SharePoint Sequential Workflow made in Visual Studio 2005 using MOSS SDK and Windows Workflow Extensions for Visual Studio 2005. When I change target CPU to x86 instead of x64 my workflow won't even run - which it does with x64 as the target CPU.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Jakob Flygare on 2/2/2010 8:25 AM
You cannot compile a class library into a the 32-bit assembly and use it in a 64-bit program in order for the assambly to act as a proxy that uses the Microsoft.Jet.OleDB.4.0 provider.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Wil Peck on 2/2/2010 10:26 AM
Yea, that's correct. The assembly needs to run in WOW. That's why I sent you an email indicating you should configure your worker process to run in 32 bit mode.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Jakob Flygare on 2/2/2010 12:18 PM
WoW64 on IIS 6 is global meaning that it cannot be per apppool wheres on IIS 7 it can be per apppool.

The assembly cannot run in WoW64 - as you indicate - but can be compiled explicitly to 32-bit or 64-bit used a 32-bit or 64-bit worker process respectivly.

I.e., if I compile it to 32-bit I can use the Microsoft.Jet.OleDb.4.0 but in order to use the assembly I have to use a worker process in 32 bit mode.

In the case of IIS 7 a specific apppool can be configured to run in 32-bit mode or an entire IIS 6 has to run all its apppools in 32-bit.

In my case I use MOSS 2007 in 64-bit that runs on an IIS 6 and the workaround is to configure use af different IIS to run a webservice in a 32 bit apppool that uses the Microsoft.Jet.OleDb.4.0 and consuming this in a workflow run in 64-bit MOSS 2007.

If there is a better way pleases let me know. Wow64 is not an option.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Elio on 2/3/2010 10:26 AM
Thank you!!!
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by David England on 2/15/2010 1:46 PM
microsoft.jet OLEDB 4.0 is not registered on the local computer
Can you help me to fix it.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by wil peck on 2/15/2010 2:35 PM
@David England: Make sure the process is running as a 32 bit app from the task manager, if it isn't then follow the steps described in this post. You'll have to setup the project options to build 32 bit, if you just set the build configuration it will still build the application as a 64 bit app.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Igor on 2/18/2010 12:51 AM
Can you help me to fix it.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by greg on 3/10/2010 6:54 AM
isn't there another way than changing to a 32-bit ??
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by wil peck on 3/10/2010 8:08 AM
@greg Apparently not... http://connect.microsoft.com/VisualStudio/feedback/details/123311/win-xp-x64-jet-v4-0
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by ifthi on 3/30/2010 2:25 AM
Thank you Shivam! u just saved me a lot of time and a lot of grades!! i have to write an app in VB n i have 5 days to learn VB n write the app for a live project! Thank u sooo much!
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Shivam Rajvansh on 5/11/2010 3:07 AM
You are welcome ifthi!
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Khalid on 8/17/2010 11:13 AM
my dear bro,
i have a system with 64bit, i use VB.net and i connect my project of vb.net to ms access, when i run it. this error will display, how to fix my dear brothers. any
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Chris on 10/25/2010 12:11 PM
I know I am a little late to the party but you saved my literally hours with this tip. Thank you so much.
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by Mike on 3/8/2011 3:57 AM
oh,thank you for solutions))))
Gravatar # re: "The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine."
Posted by W0ut on 8/24/2011 1:47 PM
I was not able to use a 32 bit compiled application since the SharePoint Server API I was using is 64 bit only.

To work around this problem you can also use the "Microsoft Access Database Engine 2010 Redistributable" as described in this post: [http://lawo.wordpress.com/2011/08/24/provider-is-not-registered/][1]


[1]: http://lawo.wordpress.com/2011/08/24/provider-is-not-registered/
Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification: