Hi Guys,
I have created windows application project in framework 3.5, vs2008 with Access database when i changed target platform to x64 it will give me an error like 'The microsoft.jet.oledb.4.0 provider is not registered on the local machine'. How to solve this thread

Thanks in advance.

Dani AI

Generated

Following points from the thread (notes from and ), here are practical fixes and tradeoffs for Access/driver bitness and native-DLL compatibility.

  • Quick fix (simplest, least risk): compile the EXE as 32-bit. In Visual Studio open Project -> Properties -> Build -> Platform target and select x86 (or add an x86 platform via Configuration Manager). That forces the process to run as 32-bit on any Windows and use existing 32-bit database drivers and unmanaged DLLs.

  • If a true 64-bit process is required: install the 64-bit Access Database Engine (ACE) and switch to the ACE provider in the connection string. Example:

    string conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\path\\mydb.accdb;Persist Security Info=False;";

    Caveat: 64-bit ACE can conflict with an existing 32-bit Office installation. If installation is not possible, consider using the 64-bit ODBC driver instead and remember the 32-bit ODBC admin lives at C:\Windows\SysWOW64\odbcad32.exe.

  • When third-party native DLLs exist only as 32-bit and a 64-bit main process must be kept: isolate those DLL calls in a small 32-bit helper process (console app or service) and communicate via named pipes, local TCP, or a lightweight RPC (WCF/HTTP). This keeps the main app architecture while letting the helper handle DB/native work.

Troubleshooting tips: confirm which provider/driver is referenced by the connection string, verify installed providers in Programs and Features, and use tools like Process Explorer/Procmon to check which DLLs are being loaded. For longer-term stability, consider migrating the data to a 64-bit-friendly engine (SQL Server Express or SQLite) to avoid driver/bitness issues.

Recommended Answers

All 2 Replies

Check if the system you are trying to change the target is a 64 bit OS.
also check for your connection to the database to which the application talks to.

Hi arunkumars,
I have buid my application on 64 bit OS but some of the DLL does not support in 64 bit.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.