SQL Server Excel Import - The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Alex Fletcher 46 Reputation points
2021-11-19T14:32:00.537+00:00

I'm trying to do a simple Excel import into a local SQL Server instance installed on my machine (to do some analysis), I'm attempting to use the wizard through SSMS. This worked a few days ago and I imported a couple of thousand tabs into tables in SQL using the same method. Now when I try to import I get this error:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)

Looking at other similar questions I've installed the Microsoft Access Database Engine 2010 Redistributable:

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

Also the Microsoft Access Database Engine 2016 Redistributable:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

And finally the Microsoft 365 Access Runtime

https://support.microsoft.com/en-us/office/download-and-install-microsoft-365-access-runtime-185c5a32-8ba9-491e-ac76-91cbe3ea09c9?ui=en-us&rs=en-us&ad=us

execute master.dbo.xp_enum_oledb_providers returns these rows:

Provider Name Parse Name Provider Description
Microsoft.ACE.OLEDB.12.0 {3BE786A0-0366-4F5C-9434-25CF162E475E} Microsoft Office 12.0 Access Database Engine OLE DB Provider
Microsoft.ACE.OLEDB.16.0 {3BE786A2-0366-4F5C-9434-25CF162E475E} Microsoft Office 16.0 Access Database Engine OLE DB Provider

Yet still the same message.

150919-ace-error.png

What else can I try?

SQL Server
SQL Server
A family of Microsoft relational database management and analysis systems for e-commerce, line-of-business, and data warehousing solutions.
13,166 questions
SQL Server Integration Services
SQL Server Integration Services
A Microsoft platform for building enterprise-level data integration and data transformations solutions.
2,502 questions
{count} votes

6 answers

Sort by: Most helpful
  1. Yitzhak Khabinsky 25,721 Reputation points
    2021-11-19T16:41:40.143+00:00

    Hi @Alex Fletcher ,

    Very possible that it is 32-bit vs. 64-bit issue.
    Microsoft ACE Provider has both.
    So you can try both options.

    There is another way to launch the wizard.
    Not inside the SSMS, but via the OS menu.
    Here is how to do it:

    • Click Windows OS Start button.
    • Navigate to Microsoft SQL Server 2017 (or whatever version you have)
    • Select SQL Server 2017 Export and Inport Data (32-bit)
      Or SQL Server 2017 Export and Inport Data (64-bit)
    3 people found this answer helpful.

  2. ZoeHui-MSFT 34,756 Reputation points
    2021-11-22T01:30:40.4+00:00

    Hi @Alex Fletcher ,

    It is a 32-bit vs 64-bit issue.

    You may try to install the Microsoft.ACE.OLEDB Provider for Both 64-bit and 32-bit.

    Here is a blog you may take a reference.

    Regards,

    Zoe


    If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


  3. Patrik Lager 1 Reputation point
    2022-01-28T09:38:39.523+00:00

    I have the exact same issue and the set up by that @Alex Fletcher shows. I tried to install the 32 version but could not
    169433-error-32.jpg

    I still get the error that the Microsoft.ACE.OLEDB Provider is not registered when trying to import an excelfile. But it shows up when checking for it is there.
    169419-oledb-check.jpg
    Any ideas?

    0 comments No comments

  4. Holly Osburn 31 Reputation points
    2022-02-16T05:05:03.347+00:00

    Any updates on this? I now have the same issue occuring on my system. It occurs whether I am trying to import to a database using my local machine's SSMS, invoking it through the start menu, etc. Tried remoting to machines where the actual database lives and launching Import Export wizard, and I get the same issue. What did Microsoft send that made this stop working across the board???