Fixing “Microsoft.ACE.OLEDB.16.0 provider is not registered” for Access/SQL hybrids.

The error “The ‘Microsoft.ACE.OLEDB.16.0’ provider is not registered on the local machine” appears when Excel, Power Query, or an Access/SQL hybrid model attempts to read data using the Microsoft Access Database Engine, but the required 64-bit or 32-bit driver component is missing from the Windows registry. This problem almost always stems from a “bitness mismatch”—such as running 64-bit Excel on a computer where only the 32-bit Access Database Engine was installed—or from side-by-side Office installer blocks.

Quick Answer

To fix “The ‘Microsoft.ACE.OLEDB.16.0’ provider is not registered,” download the Microsoft Access Database Engine 2016 Redistributable matching your Excel bitness (x64 for 64-bit Office, x86 for 32-bit Office). If the installer reports that a conflicting Office version is already present, run the installer from an administrative command prompt using the /quiet switch.


Why Access/SQL Hybrids Rely on ACE OLE DB

Hybrid reporting architectures often combine Microsoft SQL Server with Microsoft Access. For example, a financial model might query live transaction tables on SQL Server while using linked tables in an Access .accdb file to reference custom departmental mapping lists. Similarly, Excel formulas using ADO to query external .xlsx or .accdb files depend directly on the Access Connectivity Engine (ACE).

The error occurs because:

  1. Bitness Conflict: If you run 64-bit Excel, any OLE DB provider it calls must also be compiled and registered in 64-bit Windows (System32). If your workstation has a 32-bit Office component installed, the 64-bit ACE OLE DB provider is absent.
  2. Missing Standalone Engine: Modern “Click-to-Run” Microsoft 365 installations isolate Office libraries inside virtualized containers. External programs and custom connection strings cannot always detect the embedded ACE engine unless the standalone redistributable is installed.
  3. Office Version Upgrades: Moving a report from an older computer running Office 2013 (which used ACE.OLEDB.12.0 or 15.0) to a modern workstation expecting ACE.OLEDB.16.0 causes connection strings hardcoded with the newer provider name to fail if the runtime was not deployed.

To troubleshoot related Office architecture conflicts, consult 32-bit vs. 64-bit: Fixing “The code in this project must be updated for use on 64-bit systems.”.


Step-by-Step Fixes

Step 1: Verify the Bitness of Your Excel Installation

Before downloading any installer, determine whether your copy of Excel is 32-bit or 64-bit. Installing the wrong driver will not resolve the issue.

  1. Open Excel and click File > Account.
  2. Click the About Excel button.
  3. Examine the top line of the dialog box:
    • If it reads 64-bit, you need the AccessDatabaseEngine_X64.exe installer.
    • If it reads 32-bit, you need the AccessDatabaseEngine.exe (32-bit) installer.

Step 2: Install the Access Database Engine 2016 Redistributable

  1. Visit Microsoft’s official Download Center and search for Microsoft Access Database Engine 2016 Redistributable.
  2. Click Download.
  3. Select the file corresponding to your Excel bitness confirmed in Step 1.
  4. Run the installer and follow the prompts to completion.
  5. Restart Excel and test your connection.

Step 3: Bypass the Side-by-Side Installer Block (Quiet Mode Fix)

If you attempt to run AccessDatabaseEngine_X64.exe on a computer that has 32-bit Office components installed (or vice versa), the installer will halt with an error: “You cannot install the 64-bit version of Microsoft Access Database Engine 2016 because you currently have 32-bit Office products installed.”

You can safely bypass this validation check by running the installer in silent mode:

  1. Move the downloaded file (e.g., AccessDatabaseEngine_X64.exe) to the root of your C:\ drive.
  2. Press Windows Key, type cmd, right-click Command Prompt, and select Run as administrator.
  3. In the command prompt window, navigate to your root directory: cd C:\
  4. Execute the installer with the /quiet switch: AccessDatabaseEngine_X64.exe /quiet
  5. Press Enter. The installer will run silently in the background for about 60 seconds without displaying a progress bar.
  6. Verify successful registration by pressing Windows Key + R, typing regedit, and confirming that Microsoft.ACE.OLEDB.16.0 appears under HKEY_LOCAL_MACHINE\SOFTWARE\Classes.

If your Office environment experiences general library corruption after forced side-by-side installations, review Fixing “Side-by-side configuration” errors during Excel installation..


Updating Connection Strings as a Diagnostic Fallback

If you work in a restricted corporate environment where installing system runtimes is prohibited, check whether an earlier registered version of the ACE driver is already present on the machine.

  1. Open PowerShell and run: (New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Select-Object SOURCES_NAME, SOURCES_DESCRIPTION
  2. Check the output list:
    • If Microsoft.ACE.OLEDB.12.0 is listed, your machine has the 2010 database engine.
    • If Microsoft.Jet.OLEDB.4.0 is listed (32-bit only), you have legacy support for .mdb files.
  3. If version 12.0 is present, open your Excel query properties or VBA macro and change the provider string:
    • Replace: Provider=Microsoft.ACE.OLEDB.16.0;
    • With: Provider=Microsoft.ACE.OLEDB.12.0;
' VBA fallback example using ACE 12.0
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")

cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                      "Data Source=C:\Reporting\LocalMappings.accdb;" & _
                      "Persist Security Info=False;"
cn.Open

When Hybrid SQL Connections Fail Next

Once the ACE OLE DB provider is registered and Excel can read local Access files, hybrid queries that push data into or pull data from Microsoft SQL Server may encounter secondary driver handshakes: