How to fix Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine In accessdatabaseengine 2016

Sagar Pithadiya 6 Reputation points

Kindly please help me to figure out issue regarding Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine

I just updated ACCESS DATABASE ENGINE 2010 to ACCESS DATABASE ENGINE 2016 version in my system.

so please help me to figure out OLEDB issue in my system.

Please let me know any further information needed from my side.


Microsoft Technologies based on the .NET software framework.
3,472 questions
An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
10,408 questions
{count} votes

7 answers

Sort by: Most helpful
  1. Sagar Pithadiya 6 Reputation points

    its solved by changing Provider in connection string and Target platform to x86 in Project properties.

    Thank you soo much everyone for give me lead to fix this issue :)

    1 person found this answer helpful.
    0 comments No comments

  2. Jamie Hayashi 121 Reputation points

    I have encounter this problem, hope this solution can help you.

    1st- check Microsoft Office 32bit or 64bit.
    Note: On the Mac, there is no choice between running a 32-bit or 64-bit version of the operating system, since the OS has been 64-bit for several
    years. Office for Mac 2011 was only available in a 32-bit version, and Office for Mac 2016 is now only available in a 64-bit version.
    2nd- Install Access Database Engine. I give you the link. and click download and it's better to download 64bit.
    3rd - Open your Visual Studio Project, Right click and locate the properties of the project.

    4th - Proceed to build TAB, next look "Platform Target". In default that combobox is selected "ANY CPU" and the checkbox Prefer 32-bit is check. Now all you need to do is change that combobox in to 64bit (x64) and don't check any check box. Close the Visual Studio or restart pc thin open it again.

    We hope this can help you.

    1 person found this answer helpful.

  3. Castorix31 82,126 Reputation points

    There was a thread about this type of problem : How to fix: “The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine”
    (on my OS, I had installed both 32 and 64-bit)

  4. Abhi Kadam 26 Reputation points

    To resolve install

    1: Microsoft Access Database Engine 2010 Redistributable
    Using below link.

    Steps to install:
    1: Open CMD in administrator privilege

    2: Go the installable path of 32 bit Microsoft Access Database Engine 2010 Redistributable in CMD
    prompt and start the installation.
    Other OLEDB driver

     Microsoft Access Database Engine 2010
    (Microsoft.ACE.OLEDB.12.0) us/download/details.aspx?id=13255

     Microsoft Access 2013 Runtime
    (Microsoft.ACE.OLEDB.15.0) us/download/details.aspx?id=39358

     Microsoft Access Database Engine 2016
    (Microsoft.ACE.OLEDB.16.0) us/download/details.aspx?id=54920

    0 comments No comments

  5. Roberto Gonzalez-Delank 0 Reputation points

    I have near the same problem but in "vbscript" Hier my Question:

    Known problem by Microsoft
    My office Version
    Microsoft® Access® LTSC MSO (16.0.14332.20102) 64-Bit 
    Windows 10 64-Bit OS
    Unable to use the Access ODBC, OLEDB or DAO interfaces outside Office
    Starting a bdb00.vbs as Apache24 CGI-BIN applikation could not instantiate the Provider=Microsoft.ACE.OLEDB.16.0
    The Apache24 error message is:"Provider: class not registered: D:/Apache24/cgi-bin/bdb00.vbs"
    I can see the COM Object CLSID on the Registry:{3BE786A2-0366-4F5C-9434-25CF162E475F}
    Runing the script with cscript.exe instantiate the provider and script run as expected, only outside office in Apache24 have the problem.
    Is "Microsoft.ACE.OLEDB.16.0" outside office in the version "Microsoft® Access® LTSC MSO (16.0.14332.20102) 64-Bit" supported ?
    If yes what can be wrong ?
    This is a testscript:
    '!c:\WINDOWS\system32\cscript.exe /nologo
    Option Explicit
    wscript.echo "Content-type: text/html" & vbcrlf
    wscript.echo "<h1>Hello World One</h1>" 
    Dim n
    For n = 0 to 5
    wscript.echo "<h2>" & n & " </h2>"
    wscript.sleep 5000
    Const connectString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\Users\Roberto\Documents\bdb00.accdb;User Id=Admin;Password=;"
    Const adOpenStatic = 3
    Const adLockOptimistic = 3
    Const adUseClient = 3
    Dim objConnection, objRecordset
    Set objConnection = CreateObject("ADODB.Connection")
    Set objRecordset  = CreateObject("ADODB.Recordset")
    objConnection.Open connectString
    wscript.sleep 5000
    objRecordset.CursorLocation = adUseClient
    On Error Resume Next
    objRecordset.Open "SELECT * FROM Standorte" , objConnection, adOpenStatic, adLockOptimistic
    If Err.Number <> 0 Then
        'error handling:
        WScript.Echo "<p>" & Err.Number & " Srce: " & Err.Source & " Desc: " &  Err.Description & "</p>"
    End If
    wscript.echo "<h1>Hello World Two</h1>" 
    Do While Not(objRecordset.EOF)
     wscript.echo "<p>" & objRecordset("Name") & " " & objRecordset("Firma") & "</p>"
    Output of the script on the browser
    Hello World One
    -2147221164 Srce: Provider Desc: class not registered
    Hello World Two
    Thank you in advance... Roberto..
    0 comments No comments