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

Sagar Pithadiya 6 Reputation points
2021-07-13T16:59:19.737+00:00

Team,
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.

thanks,
Sagar

.NET
.NET
Microsoft Technologies based on the .NET software framework.
3,472 questions
C#
C#
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
    2021-08-05T16:57:04.8+00:00

    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
    2022-05-04T00:09:02.673+00:00

    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. https://www.microsoft.com/en-us/download/details.aspx?id=54920 and click download and it's better to download 64bit.
    198589-untitled.png
    3rd - Open your Visual Studio Project, Right click and locate the properties of the project.
    198671-untitled1.png

    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.
    198625-untitled2.png

    We hope this can help you.

    1 person found this answer helpful.

  3. Castorix31 82,126 Reputation points
    2021-07-13T17:09:51.907+00:00

    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
    2023-01-05T12:21:45.473+00:00

    To resolve install

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

    https://www.microsoft.com/en-in/download/details.aspx?id=13255

    Steps to install:
    1: Open CMD in administrator privilege
    276470-image.png

    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) https://www.microsoft.com/en us/download/details.aspx?id=13255

     Microsoft Access 2013 Runtime
    (Microsoft.ACE.OLEDB.15.0) https://www.microsoft.com/en us/download/details.aspx?id=39358

     Microsoft Access Database Engine 2016
    (Microsoft.ACE.OLEDB.16.0) https://www.microsoft.com/en us/download/details.aspx?id=54920

    0 comments No comments

  5. Roberto Gonzalez-Delank 0 Reputation points
    2023-04-11T10:39:25.7733333+00:00

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

    Known problem by Microsoft
    ==========================
    https://learn.microsoft.com/en-us/office/troubleshoot/access/cannot-use-odbc-or-oledb
    
    My office Version
    =================
    Microsoft® Access® LTSC MSO (16.0.14332.20102) 64-Bit 
    Windows 10 64-Bit OS
    Problem
    =======
    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.
    
    
    Question:
    =========
    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>"
    next
    
    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>"
        Err.Clear
    End If
    
    wscript.echo "<h1>Hello World Two</h1>" 
    
    Do While Not(objRecordset.EOF)
     wscript.echo "<p>" & objRecordset("Name") & " " & objRecordset("Firma") & "</p>"
     objRecordset.MoveNext
    Loop
    
    
    objRecordset.Close
    objConnection.Close
    
    Output of the script on the browser
    ===================================
    Hello World One
    0
    1
    2
    3
    4
    5
    
    -2147221164 Srce: Provider Desc: class not registered
    Hello World Two
    
    Thank you in advance... Roberto..
    
    0 comments No comments