the 'microsoft.jet.oledb.4.0' provider is not registered on the local machine RRS feed

  • Question

  • hiya,

            have just installed vusial studio 05 and everythign seems to work fine, apart from when tryign to connect to an access dataabse.


    as the title says, i get thsi error


    the 'microsoft.jet.oledb.4.0' provider is not registered on the local machine


    i have read through never thign i can find about this and nothing has worked...i have tryed downlaoding the latest jet engine but i already had the latest. i have tryed registering the files using regsrv but nothing.


    nothing has worked.


    i didnt quite understand the stuff about x86 or a 64bit or whatever it was but i am running 32bit os, if that helps



    anyway, its much appreciated for the help



    Monday, July 9, 2007 1:57 PM

All replies

  • Look for the file msjet40.dll. It should be in the System32 directory. If the file is present try using the regsvr32 utility to register the file.
    Monday, July 9, 2007 6:18 PM
  • i have already done that, the file is present and it is the correct version but it still wont work
    Monday, July 9, 2007 6:21 PM

  • Could you post your connection string code?
    Monday, July 9, 2007 7:36 PM
  • i havent made 1...what i have done is in the "server explorer" tab i have right clicked on "Data Connections > Add Connection" and selected "Microsoft access database file" i then fill in the info and press ok or test connection and it then gives me that error


    hope that helps

    Monday, July 9, 2007 7:47 PM
  • Code Snippet
    <%@ Import Namespace="System.Data.OleDb" %>
    <script runat="server">
    sub Page_Load
    dim dbconn
    dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
    data source=" & server.mappath("database_path/database_name.mdb"))
    end sub


    i have also just tryed the above code and got the same error.
    also just noticed that this error is on my local machine, when i save and uplaod the file with the above code it works fine o nthe server machine.
    Monday, July 9, 2007 7:55 PM
  • any ideas anyone???


    this is starting to piss me off

    Tuesday, July 10, 2007 9:50 PM
  • *BUMP*
    Thursday, July 12, 2007 2:06 PM

  • Is this a web application? If so, what level of authentication is the application configured for?
    Thursday, July 12, 2007 2:21 PM
  • yes it is for a web application, what do you mean "what level of authentication is the application configured for?" can you dumb it down a little for me please?



    Thursday, July 12, 2007 2:24 PM

  • Web applications can be configured for different levels of authentication via IIS (Internet Information Server). You can select Anonymous, Basic, Integrated Windows, etc.

    As a result, the web application will run under different identities depending upon the security configuration. I'm speculating that the account under which the web application is executing (which is not the interactive account) may not be able to access certain files or Registry entries related to the Jet OLEDB Provider.

    Thursday, July 12, 2007 2:54 PM
  • so, how do i go about setting my account up to access these files that it cannot get to?


    or are you telling me that its just not going to work?

    Thursday, July 12, 2007 2:58 PM

  • At this point I don't know because I don't have enough information about your configuration.

    Can you connect with a .NET Windows application? The answer to this question might shed some light on whether there is a permissions problem.

    Thursday, July 12, 2007 6:27 PM
  • i get the same error when trying to make a connection to the database in the windows application.
    Friday, July 13, 2007 1:39 AM

  • You might want to take a look at the following MS KB article to see if there is anything there that helps:



    Friday, July 13, 2007 8:55 PM
  • already been there, i ahve the latest version and i have checked the version numbers as it said, i have tryed registering the files list and still nothing
    Saturday, July 14, 2007 12:54 AM

  • Just to see if this is a system wide problem or only .NET related, can you connect through VB code using ADO? You can use VB 6.0 or one of the Office apps to test this code:

    Dim cnn As New ADODB.Connection
    cnn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=<path to database>)

    Tuesday, July 17, 2007 1:21 PM
  • in vb6 i get this error.


    "Provider cannot be found. It may not be properly installed."



    Tuesday, July 17, 2007 1:55 PM

  • Try registering the following files as well using Regsvr32:


    Tuesday, July 17, 2007 3:29 PM
  • regsvr32 "C:\windows\System32\Msjetoledb40.dll" = is not an executable file and no registration helper is registered for this file type


    regsvr32 "C:\windows\System32\Msjet40.dll" = succedded


    regsvr32 "C:\windows\System32\Mswstr10.dll" = was loaded, but the DllRegisterServer entry point was not found.

    this file can not be registered


    regsvr32 "C:\windows\System32\Msjter40.dll" = was loaded, but the DllRegisterServer entry point was not found.

    this file can not be registered


    regsvr32 "C:\windows\System32\Msjint40.dll" = was loaded, but the DllRegisterServer entry point was not found.

    this file can not be registered



    that is what i get when registering the files

    Tuesday, July 17, 2007 7:09 PM

  • OK, I'm running out of ideas here. Are you logged on to your machine with a local administrator account?

    Tuesday, July 17, 2007 8:20 PM
  • yes, it is the admin account, its the onyl account i use
    Tuesday, July 17, 2007 11:07 PM

  • What is the version # of msjet40.dll?
    Wednesday, July 18, 2007 2:20 PM
  • 4.0.8618.0 which to my knowledge is the latest for my system
    Wednesday, July 18, 2007 2:26 PM
  • Paul,

    I was reading through all the posts in this thread. I m working on VBA Macro code.

    I seem to be having the same problem. I tried the connection that you gave me. That seem to be working fine.

    However, I extend the code and add the Recordset to my code. The provider doesn't seem to work.

    Your guidance will be of real help.

    My recordset code goes like this:

    Sub temp()
    Dim cnn As New ADODB.Connection
    cnn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                        "Data Source=c:\DuPont Reporting\Dupont Reporting.mdb")
    Dim sql As String
    sSQL = "SELECT [Report Category],[PQR Number],Status " & _
    "FROM [Closed Remedy PQR];"
    Set rsData = New ADODB.Recordset
    rsData.Open sSQL, "cnn"
    rsData.Open sSQL, "cnn"


    If Not rsData.EOF Then
    Sheet1.Range("A1").CopyFromRecordset rsData
    MsgBox " no data located.", vbCritical, "error"
    End If
    Set rsData = Nothing

    End Sub

    Thank you very much,



    Friday, July 20, 2007 12:48 AM