SSIS Package Execution Error - The requested OLE DB provider Microsoft.ACE.OLEDB.16.0 is not registered

Ryan 16 Reputation points
2025-06-24T18:20:55.04+00:00

Hello Community,

I have been getting this error message every time I run my saved SSIS package. And even though I have looked up this error message across the web, the solutions have not seemed to work.

To provide the background information with the drivers and software installed:

  • Microsoft® Excel® for Microsoft 365 MSO (Version 2408 Build 16.0.17928.20538) 32-bit
  • Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046862) - 16.0.4155.4 (X64) Oct 18 2024 16:16:11 Copyright (C) 2022 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2022 Standard 10.0 <X64> (Build 20348: ) (Hypervisor)
  • Microsoft AccessDatabaseEngineX64 16.0.4519.1000 Gen P0
  • Other ODBC Drivers: User's image

The SSIS Package is saved in SSISDB;

The connection manager string: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[UNC Path of the file address];Extended Properties="EXCEL 8.0;HDR=YES";

When I use the Import and Export wizard, and select the Data Source as Excel, there is no issue detecting the Excel document and the sheets/tables; And there is no issue loading the data to the database table with the wizard (the 'run immediately' option);

The error appears when I try to rerun the saved SSIS package at any location. I have tried Visual Studio, SSISDB, SQL Server Agent, all show the error message. Both 32-bit and 64-bit Microsoft AccessDatabaseEngine had been installed and tried, same outcome;

Full validation error messages:

User's image

Would this still be a driver issue, or SSIS package setup issue?

Many thanks!

SQL Server Integration Services
{count} votes

5 answers

Sort by: Most helpful
  1. Michael Taylor 61,111 Reputation points
    2025-06-24T20:27:04.2966667+00:00

    SSIS packages can run in either x86 or x64 mode. It is a property of the package. It depends on how you are actually running the package as to where it is set.

    1. When developing the package you would set it in the properties for the project. It is Run64BitRuntime.
    2. If you are using SQL Agent then it is a property of the job when you set it up. Edit the job to specify which bitness you want.
    3. If you're using a batch file and running dtexec directly then you need to pass a flag to have it run in x86 mode since SQL is x64 by default.
    4. If you want to view the existing package details then use the SSIS node in SSMS. Alternatively you can use the catalog views to look using T-SQL.

    My gut instinct is that you want your package to be x64 and therefore should ensure your Access runtime is x64. Then make sure your SSIS package is configured to run as x64 and not x86.


  2. Yitzhak Khabinsky 27,091 Reputation points
    2025-06-25T11:18:57.3133333+00:00

    Hi @Ryan,

    Your connection string shows that SSIS package is using Microsoft.ACE.OLEDB.12.0 provider.

    All you need to do is to install and start using Microsoft ACE OLEDB Provider 16.0. The connection string in SSIS should be using it as follows:

    Provider=Microsoft.ACE.OLEDB.16.0;...
    

    After that issue the following statement is SSMS to verify what 64-bit OLEDB Providers are installed:

    EXEC master.sys.sp_enum_oledb_providers;
    

    Or in PowerShell:

     (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
    

    P.S. Microsoft ACE OLEDB Provider has nothing to do with ODBC drivers.


  3. RUDRAKSHA SHARMA 0 Reputation points
    2025-06-30T19:17:10.6066667+00:00

    Hi Ryan,

    This error typically points to an architecture mismatch between your SSIS runtime and the installed OLE DB provider.

    Here’s the breakdown and fix:


    Why This Happens:

    • Your system is running 64-bit SQL Server, but Office is 32-bit.

    The ACE.OLEDB.12.0 or 16.0 provider (used to connect to Excel) is not registered for 64-bit or is conflicting with the 32-bit Office version.

    The Import/Export wizard works because it runs in 32-bit mode, but SSIS in SSISDB and SQL Server Agent run by default in 64-bit mode.


    Fix 1 (Recommended): Run the package in 32-bit mode

    If you're executing the package via SQL Server Agent:

    Edit the Job Step.

    Go to the Execution Options tab.

    Enable Use 32-bit runtime.

    If you're running via Visual Studio:

    Right-click the project > Properties.

    Go to Debugging.

    Set Run64BitRuntime = False.

    This forces the package to run using the 32-bit ACE driver, which is compatible with your Office setup.


    Fix 2 (If you prefer 64-bit execution)

    Uninstall 32-bit Office (including all 32-bit Access Database Engine components).

    Install the 64-bit version of Microsoft Access Database Engine 2016 Redistributable: Download link

    1. Update your connection string to:
         
         Provider=Microsoft.ACE.OLEDB.16.0;Data Source=...;Extended Properties="Excel 12.0;HDR=YES";
      

    Note: Only proceed with this if you're switching your entire Office suite to 64-bit, as mixing 32-bit Office with a 64-bit driver can lead to additional issues.


    Alternative Option

    If Excel isn't a strict requirement, consider converting the Excel file to CSV and using the Flat File Source in SSIS. It simplifies the connection and avoids OLE DB dependency issues altogether.


    Let me know if you need help with the conversion or adjusting your SSIS package accordingly.


  4. john willaim 0 Reputation points
    2025-08-01T14:06:39.54+00:00

    To fix the "OLE DB provider not registered" error in SSIS:

    1. Install the Microsoft Access Database Engine (both 32-bit and 64-bit versions) from Microsoft Download Center.
    2. Configure SSIS to match the bitness of your provider (32-bit or 64-bit).
    3. Check provider registration using this SQL command:
         sql
         CopyEdit
         EXEC master.sys.sp_MSset_oledb_prop;
      
    4. Ensure the correct connection string in your SSIS package for the provider.
    5. Rebuild and redeploy your SSIS package.
    0 comments No comments

  5. Dinesh Yadlapalli 0 Reputation points Microsoft External Staff Moderator
    2025-11-28T12:40:03.39+00:00

    Hi @Ryan,

    Thank you for reaching out to the Microsoft Q & A Forum.

    This behavior aligns with the ACE provider not being available in the bitness that the package is executing under on the server, even though it’s available in the environment where the wizard ran. SSIS can execute in 32‑bit or 64‑bit mode depending on how and where you run it. When the mode doesn’t match the installed ACE provider or the provider isn’t installed for that mode, you get the error.

    Please try below steps.

    1. Install Access Database Engine 2016 x64 on the SQL Server where SSIS is executed.
    2. In SSIS connection manager, use:

    Provider=Microsoft.ACE.OLEDB.16.0;

    Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

    or keep 12.0 moniker if you have that installed x64.

    1. Ensure packages run 64‑bit in SSISDB/SQL Agent.

    It is primarily a driver/bitness deployment issue on the server (ACE provider installed for the wrong architecture or not installed at all for the architecture you are using), combined with how SSIS is being invoked (32‑ vs 64‑bit). Align the provider installation with the runtime mode and update the connection’s extended properties to match .xlsx. Once those are consistent, the package should validate and execute.

    I hope this information helps. Please do let us know if you have any further queries.

     

    Regards,

    Dinesh


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.