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

  • Question

  • OK I have seen the discussion around this subject and I am afraid that I got a bit lost.

    I am using EW2 and the EW development server. Is there anything I can do simply to get this thing working to be able to use .mdb files in my website?

    Thursday, May 7, 2009 3:05 PM


All replies

  • Try installing the JET provider:

    Another article on keeping a Jet 4.0 database in top working condition:

    Also, what are you using to access the database? ASP or ASP.NET?
    Chris Hanscom - Microsoft MVP
    Resource Center | Veign's Blog | Web Development Help

    Free Professional PHP Code Samples by Veign
    Thursday, May 7, 2009 3:19 PM
  • I am having the same trouble on a new machine.

    Error Message
    The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Lucida Console";font-size: .9em} .marker {font-weight: bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }

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

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.


    Worked perfectly on the old machine so it must be the new setup on the new machine.

    Microsoft Web Expressions 2
    MS Access Database 2007 MDB file
    Vista Home Premium Service Pack 1

    64 bit operating system

    When I preview the html web page, no problem
    When I preview an ASPX then I receive the missing MS Jet file error.

    Also when reviewing the articles about, the system already has Jet installed so there is no need or reason to install JET. It also state I have above 4-0 installed.

    I have googled for hours with no success. ANy help would be appreciated.



    Monday, June 8, 2009 9:09 PM
  • In site settings on the preview tab, do you have EW set to prevoew *All*  pages using the dev server?

    FrontPage MVP
    Monday, June 8, 2009 9:28 PM
  • "64 bit operating system"

     There is no Microsoft.Jet.OLEDB.4.0 for 64 bit.  To preview a site using an Access database on a Vista 64 bit machine, you'll need to use IIS, and set the site to run in a 32bit asp.net application pool.
    Monday, June 8, 2009 11:43 PM
  • Hello eveyone - 

    Im having the same problem and I am completely new to all of the concepts + contexts that you are discussing so forgive me if my questioning is basic.

    I have a 64bit system and I am using the walkthroughs provided with Visual Studio 2008. How do I "use IIS, and set the site to run in a 32bit asp.net application pool"?

    Thankyou in advance for any help.
    Friday, December 18, 2009 11:57 AM
  • Its ok, i did it! - I went into IIS Manager and changer the settings in advanced tab of application pool. WOO HOO!
    Friday, December 18, 2009 12:09 PM
  • Connecting to MS Access on Windows 64-Bit


    Folks, like many of you I struggled with the deprecation of JET 4.0 in Windows Vista/7 on 64-bit machines. A process running simply for years, ported to a faster machine simply stopped working with the error: 'Microsoft.Jet.OLEDB.4.0' provider is not registered. I was annoyed at the lack of notice from MS and lack of clear instructions. After tinkering I found the solution and I’ll post it first directly, with details after, for the benefit of those just as frustrated as I. The situation I describe is for VB, but may work in other code/environments.


    1. Download and run AccessDatabaseEngine_x64.exe




    2. Change the connection string in your code to:


    Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= <-db name and path here


    There is no need to upgrade/replace JET or emulate 32-bit connections. You don’t have to buy a new version of MS Office/Access, Access does not even need to be installed on the machine, you just need the driver. No need to convert to SQL Express. My legacy code is now running flawlessly on Windows 7 quad 64-bit machine without any office apps installed.


    When I first encountered the issue I tried to replace/upgrade JET but it was not available for 64-Bit and there were no plans to create it. Apparently, there is now a version released for 64-bit windows but you don’t need it. The MS Access Driver exists on older platforms as well and can be used instead of JET on 32-bit machines as well. However, there is one important detail concerning “*.accbd”, you must include this in the string or it wont work. Many examples posted on the web look like this: Driver={Microsoft Access Driver (*.mdb)} But it will produce an error in some cases indicating the DB and driver were not supplied in the string. *.accdb needs to be included as well.


    Replace: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=


    With: Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=


    Full pseudo code:


    dbLocation = "C:\dbstore\myAccess.mdb"

    Set objADO = CreateObject("ADODB.Connection")

    objADO.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & dbLocation


    All other SQL calls and objects are unchanged.


    Have not tried yet in C++, or with Excel, or as a DNS location, but test it yourself.

    Wednesday, May 18, 2011 3:36 PM
  • hi Gobruen,

    Just want to know your solution able to run the application in 32 bit sessions also? Since my client want my application to run in both 32 and 64 bit OS.

    Highly appreciate your help. Thanks


    Tuesday, January 31, 2012 3:32 AM
  • This thread was started AND ANSWERED almost 3 years ago!!! Who do you think you are talking to???

    Even gobruen (who shouldn't have resurrected it either) hasn't been here for nearly a year.

    Have you never been in a web forum before? Every forum has rules that you are supposed to read. In here they are labelled Forum FAQ and Guidelines - Start Here. One of the main rules of this and every forum on the web is: never resurrect a dead thread! You would have read that rule if you had read the Forum FAQ. It pushes active threads off the front page and since it's already been marked as answered, causes even more confusion since people don't usually try to answer threads that heav a;ready been answered.

    Go read the Forum FAQ and pay attention. And start your own thread (or go to an Access forum) and give us some details. Saying that your client wants an application to run in both 32 and 64 bit is useless.

    Comic Sans walks into a bar. The bartender says, "Get out! We don't serve your type."
    Tuesday, January 31, 2012 4:47 AM
  • You can fix this problem on 64 bit server by changing the provider to 


    Note: You should download and install the access DB engine for 64 bit.. 


    • Proposed as answer by SandeepT Tuesday, April 3, 2012 1:15 PM
    Tuesday, April 3, 2012 1:13 PM
  • I'm listening and found the exact answer I needed on a top Google search here.  So POO on you and your silly rules. Busy folks don't have time to browse forums searching for answers, nor troll them looking for things to answer, let alone writing long, nagging posts about not following silly rules...we let search engines help us.  And if it's so durned important not to resurrect a "dead thread" then the forum's software should prevent that from happening.
    Wednesday, February 17, 2016 9:28 AM
  • No, it is simply a matter of forum etiquette, of good form. Kinda like not farting in church. Apparently conformance to etiquette is a concept which escapes you.

    Please remember to "Mark as Answer" the responses that resolved your issue. It is common courtesy to recognize those who have helped you, and it also makes it easier for visitors to find the resolution later.

    Wednesday, February 17, 2016 7:47 PM
  • Good for you. You found the answer in an old post. That's what should happen.

    You could have just left it at that.

    ClarkNK AKA HomePage Doctor
    Database Tutorials Using ASP.NET Controls

    Wednesday, February 17, 2016 8:06 PM
  • One of the main reasons not to resurrect an old thread is simple: The answer may have changed.  The first response was correct in 2009 - no 62 bit version - but was no longer true in 2011, and is not true in 2016.

    This is similar to old threads on earlier versions of EW, where the answer no longer applies to the latest version.

    There is a reason for the general forum rule to start your own thread rather than dig up an old one.  If the old answer still applies, someone will tell you.  If you read an old thread that does answer your question: great! But don't reply to it, causing it to pop up again.

    Kathleen Wilber
    BrightWillow - ASP.NET applications

    Wednesday, February 17, 2016 11:04 PM