Excel, Microsoft Technologies, Power BI, SSIS

Installing the Microsoft.ACE.OLEDB.12.0 Provider for Both 64-bit and 32-bit Processing

I recently got a new laptop and had to go through the ritual of reinstalling all my programs and drivers. I sometimes work with SSIS locally to import data from Excel and occasionally do demos with Power BI where I read from an Access database so I needed to install the ACE OLE DB provider.  If you try to do either of those things without the ACE OLE DB provider you will get a message like the one below.

The ‘Microsoft.ACE.OLEDB.12.0’ provider is not registered on the local machine.

I needed both the 32-bit and the 64-bit adapters to cover my various use cases. I started by installing the 64-bit Microsoft Access Database Engine 2010 Redistributable.  If you have ever attempted this, you know there is a secret. You cannot install the 2010 Access database engine with a different processing architecture (bittedness) from your Office install (or install both versions of the 2010 Access database engine) without a workaround.  If you try, you will get an error message.

ACE engine bittedness error

There are two options for getting the other version installed.

Option A: Install the 2007 Office System Driver: Data Connectivity Components

The 2007 Access database engine can read the same format, but didn’t have a 64-bit install. It doesn’t have the check to see what other products are on your machine and can co-exist peacefully with the 64-bit 2010 Access engine.

Option B: Install from the Command Line and Use the Passive Switch

  1. Open the command prompt.
  2. Type the file path and file name for your Access Database Engine install file.
  3. Follow it with a space and then “/passive” and then hit Enter.
  4. Delete or rename the mso.dll registry value in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths

Note: A helpful commenter has informed me that for Access 2016 the switch is /quiet rather than /passive.

ACE install cmd

I wrote up a document for this a while back for a client, but I can never remember where I put it. So I’m posting this on my blog to make this info easier to find for me as well as you.

79 thoughts on “Installing the Microsoft.ACE.OLEDB.12.0 Provider for Both 64-bit and 32-bit Processing”

  1. Meagan, the repeated installation attempts did not lead to the creation of Microsoft.ACE.OLEDB.16.0 entry under Server Objects->Linked Servers->Providers in SSMS on the client, nor in the registry of the client under HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Microsoft SQL Server -> MSSQL11.MSSQLSERVER -> Providers (described in your post above). I left a reply here yesterday close to 2 pm CT, it has not been published. Will you have any idea how this can be resolved?

    1. What solution fixed your problem? We had a recent install of office 365. From then I am getting this ACE.OLEDB.12.0 provider issue from table to Excel or from excel to Table data flow. Please advise as it’s very urgent

  2. THANK YOU!!!
    I’ve been hunting for this all morning after I got a newly imaged laptop from my company.
    Installing it from the command line worked like a charm!

  3. Thanx! This works! Couldn’t import data from xslx (over 200k records) to SQL Server, using MSSMS 18.2, said Microsoft OLEDB 16 not registered. This magic worked, I was able to import.

  4. Thank you so much! It worked for me after having issues with running SSIS Excel Connection Manager. I wasn’t able to find the mso.dll location as indicated but it still seems to work for me!

  5. i didn’t need to run the command line. but your post gave me the idea to try both 32 and 64 bit. i originally only had 64 bit installed and was still getting the error. thanks to your post, i installed the 32 bit as well and… finally!

    thank you.

Leave a Reply to Nehal Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s