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

  • Question

  • I developed an application on my 32 bit Vista machine using VB in Visual Studio 2010.  The app accesses an Access Database and simply reports the number of entries in the database.  I have used both the Microsoft.Jet.OLDB.4.0 and the Microsoft.ACE.OLEDB.12.0 providers.  The application on my developmenbt machine compiles and executes as expected.  I specified Any CPU on this complilation.  when I tried to install and run the application on a Win 7 x64 machine I get the following error.

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

    There are countless references on the internet to this error.  All seem to be centered around the fact that in my case I developed the app on a 32 bit machine and tried to run it on a 64 bit machine.  I tried several different suggested fixes for this error.

    1.  Recompile the program  specifying the Advanced Compile option of x86 for the Target CPU.  After installing this verion of the app on my 64 bit machine I still get the same error when attempting to access the database.

    2. Install the AccessDatabaseEngine_x64 program on my 64 bit machine.  The machine still says the provider is not registered.

    3. I switched provider to Microsoft.ACE.OLEDB.12.0 and recompiled with and without a forced 32bit compile (x86).  Still get the same error regardless of provider, all the while either provider works fine on my development 32 Bit Vista machine . 

    4. I manually registered the Jet provider using the following command on the command line regsvr32 msjet40.dll.  This on my 64 bit machine.  No luck!!

    5.  many other suggestions found on the internet were too complicated for me to even get started.

    I have several app's that are going to face this problem on Win 7 64 bit machines and I have so far struck out on finding a solution.  I really need help on this  and would greatly appreciate getting some information on what I may be doing wrong in trying to correct this error with the things I have already tries.  Also if there are other things I can try, please post these in a straight-forward manner so that a relative newbee can understand and implement.


    Saturday, April 21, 2012 5:08 PM


All replies

  • Hi. Have a look at the reply by Mike Zhang The 'Microsoft.ace.oledb.4.0' provider is not registered on the local machine 

    As far as I know the microsoft.jet.oledb.4.0 provider is not supported for x64

    When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community. Happy programming!

    • Edited by DirkStrauss Saturday, April 21, 2012 6:44 PM
    • Proposed as answer by Barry Wang Monday, April 23, 2012 8:53 AM
    • Marked as answer by Barry Wang Tuesday, May 1, 2012 6:00 AM
    Saturday, April 21, 2012 6:43 PM
  • Read what Dirk said.

    In the long run, you'll save yourself a lot of trouble by converting your datanases to SQL Server and using SQL Server Express (free) with your apps.

    • Edited by pvdg42 Tuesday, May 1, 2012 11:07 PM
    Sunday, April 22, 2012 3:42 AM
  • Hi Phokaeas,

    Welcome to the MSDN forum.

    Please read what DirkStrauss said, I think this link which Mike mentioned shows the error reason:


    Best regards,

    Barry Wang [MSFT]
    MSDN Community Support | Feedback to us

    Monday, April 23, 2012 8:53 AM
  • Thanks,

    See my post to see where I was going wrong on this issue.  It pretty much follows the guidelines laid out by Dick Strauss.



    • Marked as answer by Barry Wang Wednesday, May 2, 2012 2:58 AM
    Tuesday, May 1, 2012 8:11 PM
  • Like Phokaeas, I am trying to adapt a previously written application on my 32 bit Vista machine using VB 2010 Express and have been trying, in vain, to change from an SQL Server database to an Access database. Previously, when I had Office 2000 installed, I had no bother, but because Outlook 2000 was incompatible with Vista, I replaced Office 2000 with Office 2003 Pro. Significantly or not, it was from then that the trouble began. As soon as I tried to connect to the Access database I got the error:

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

    I have read hundreds of suggestions both here and elsewhere on the internet and almost without exception they mention the problems in using the Jet 4.0 engine in a 64 bit environment, but I AM USING A 32 bit ENVIRONMENT. Despite this, I have specified a 32 bit compile option for everything - the target CPU and the 3 projects in my application. I have also tried repairing the Office 2003 installation, and I have tried registering all of the jet files using, for example, regsvr32 msjet40.dll. (Some files, I can't remember which,  couldn't be registered, though.)

    Consequently, I have reached an impasse. I have no idea what to try next, other than forget it and stick with SQL Server. That, unfortunately, won't help my plans to automate Word at a later stage in my program development.

    I feel there must be sombody out there who understands these things and can help. If so, I - a poor and elderly amateur, struggling in an alien world - would be very grateful.

    Monday, December 17, 2012 7:12 PM
  • My problem was with running Access database on Windows 7 machine. I finally had to install the Access database engine provided by MS:


    I install this oin my Win 7 machine and then install my app.  It worked.  I actually did not have a problem with my access database on Vista but I was using Office 2010 professional which comes with Access 2010.


    Monday, December 17, 2012 8:47 PM