8
votes

I am having a problem with my application. When it is run, the error displays

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

I tried changing Platform to X86 CPU but it could not be changed, the only available option is Any CPU.

Please advise how to get rid of this error.

Thanks

5
shouldnt your question be "why can't i change the Target CPU" because that's the puzzling thinghawbsl
"I tried changing Platform to X86 CPU but it could not be changed" If someone else is also having this issue, please try this first: If you are using visual studio, the platform can be changed under Project Properties > Build > Platform target. If you check on the Solutions Platform it may only show Any CPU.Gayan Dasanayake

5 Answers

6
votes

you are using the Jet.OLEDB.4.0 driver, which gives that error when run on 64 bit system, it is better to install the new driver Microsoft Access Database Engine 2010 Redistributable

http://www.microsoft.com/download/en/details.aspx?id=13255

also you'll need to change the connexion string from “Provider=Microsoft.Jet.OLEDB.4.0; “ to “Provider=Microsoft.ACE.OLEDB.12.0;”

reference from my blog : 64 bit version of ‘Microsoft.Jet.OLEDB.4.0’ Office 2007/2010 Jet drivers

hope this helps.

4
votes

Open IIS manager, select Application Pools, select the application pool you are using, click on Advanced Settings in the right-hand menu. Under General, set "Enable 32-Bit Applications" to "True".

Now x86 option will be visible and build your app in this mode

2
votes

Access is not installed on the system. you have to install either microsoft office, or access database engine (which is free and much smaller) here is the link to install it for access 2010:

http://www.microsoft.com/download/en/details.aspx?id=13255

0
votes

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

RNT Customer is designed to work on 32 or 64 bit PCs running Windows XP, Windows Vista, Windows 7 or Windows 8 Pro, but on Windows XP 64 bit (and possibly other operating systems) it is possible that some of the Microsoft OLEDB DLLs have not been registered.

Solution No. 1

The solution is to manually register those DLLs.

go to Start->Run and type cmd this starts the Command Prompt (also available from Start->Programs->Accessories->Command Prompt)

type cd \ and press return

The prompt should now show C:\>

You need to go to a special folder which would be something like

  • c:\windows\system32
  • c:\winnt\system32
  • c:\windows\sysWOW64

Try typing each of these. If it says "The system cannot find the path specified, try the next one" e.g.

  • cd c:\windows\sysWOW64
  • cd c:\windows\system32
  • cd c:\winnt\system32

When one of those doesn't cause an error, stop, you've found the correct folder.

You need to register the OLE DB 4.0 DLLs by typing these commands and pressing return after each

  • regsvr32 Msjetoledb40.dll
  • regsvr32 Msjet40.dll
  • regsvr32 Mswstr10.dll
  • regsvr32 Msjter40.dll
  • regsvr32 Msjint40.dll

*Solution No. 2 *

To resolve this issue open the project in Visual Studio then:

  1. From the solution explorer right-click your project then click Properties
  2. Click the Build tab
  3. Change Platform target from: Any CPU to x86
  4. Re-build your solution
0
votes

Causes: Hosting of Asp.net application on 64 bit machine. But our site reference to third party DLL which is build in 32 bit. step by step solution Once i tried all solution but i was stuck , because i was using ODBC driver insted of OLEDB.