Microsoft.ACE.OLEDB.12.0 is not registered

Ssis

Ssis Problem Overview


I have a SQL Server job that runs monthly that runs in server. Job is using an SSIS package and is supposed to extract the data from database and and create an Excel sheet and copy the data into Excel 2003.

I actually got around 140,000 rows from the database due to truncation issue in Excel 2003 (Excel supports 64,000 rows). So I modified the config file to support 2007 Excel format.

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="  +  @[User::FullPath]  + ";Extended Properties=\"Excel 12.0;HDR=YES\"

But when I try to execute the job, it fails showing error message:

> "The requested OLE DB provider Microsoft.ACE.OLEDB.12.0 is not registered"

Ssis Solutions


Solution 1 - Ssis

Summarized: INSTALL 32 bit version of Microsoft Access Database Engine 2010 Redistributable. Uninstall 64 bit version if previously installed. [http://www.microsoft.com/en-us/download/details.aspx?id=13255][1]

The Excel connection manager is trying to use the ACE OLE DB provider in order to access the Excel file when the version is above 2007 (xlsx). Although your box is 64-bit, you’re using SQL Server Data Tools, which is a 32-bit application. There is no 64-bit version for SSDT. When you design your package within SSDT, you’re using a 32-bit process, which can only use 32-bit providers. When you try to choose the table in the Excel file, the connection manager needs to access the 32-bit version of the ACE OLE DB provider, but this provider is not registered on your machine, only the 64-bit version is installed.

You should download the 32-bit version of the “Microsoft Access Database Engine 2010 Redistributable”. When you try to install it, you might get an error message. You should first uninstall only the 64-bit version of the “Microsoft Access Database Engine 2010 Redistributable”, which you probably installed previously. The 64-bit version and the 32-bit version can’t live together on the same host, so you’ll have to uninstall (through “Program and Features”) and install the other one if you wish to switch between them.

Once you finish uninstalling the 64-bit version and installing the 32-bit version of the provider, the problem is solved, and you can finally choose the table within the Excel file. The Excel connection manager is now able to use the ACE OLE DB provider (32-bit version) in order to access the Excel file.

[1]: http://www.microsoft.com/en-us/download/details.aspx?id=13255 "Download here"

Solution 2 - Ssis

There is a alter way. Open the excel file in Microsoft office Excel, and save it as "Excel 97-2003 Workbook". Then, use the new saved excel file in your file connection.

Solution 3 - Ssis

Another option is to run the package in 32 bit mode. Click on the solution => properties =? Debugging => Set run in 64 bit to false.

Solution 4 - Ssis

I think you can get away by just installing the OLEDB Drivers - http://www.microsoft.com/en-us/download/details.aspx?id=13255

Solution 5 - Ssis

I installed the "Microsoft Access Database Engine 2010 Redistributable" as mentioned above and got side-tracked troubleshooting bitness issues when it seemed to be a version issue.

Installing "2007 Office System Driver: Data Connectivity Components" sorted it for me.

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

Solution 6 - Ssis

The easiest fix for me was to change SQL Agent job to run in 32-bit runtime. Go to SQL Job > right click properties > step > edit(step) > Execution option tab > Use 32 bit runtime

screenshot

Solution 7 - Ssis

You have probably installed the 32bit drivers will the job is running in 64bit. More info: http://microsoft-ssis.blogspot.com/2014/02/connecting-to-excel-xlsx-in-ssis.html

Solution 8 - Ssis

I followed the instructions to use the /passive switch here, after downloading the 64 bit Access database engine. I'm running Office 32-bit, SSAS Tabular Model in SQL Server 2012. When I downloaded and ran the 64-bit Access database engine it came up with a message saying that I couldn't install this without first uninstalling Office 2010, but the /passive switch seems to have solved this (I can now import Excel workbooks and Access tables in a tabular model).

Solution 9 - Ssis

The easiest solution I found was to specify excel version 97-2003 on the connection manager setup.

Solution 10 - Ssis

I was getting this same error after previously being able to complete similar operations. I didn't try downloading any of the mentioned packages since I didn't have them previously and things were working. IT at my job did a 'Repair' on Microsoft Office 2013 (Control Panel > Programs > Add/Remove - Select Change then Repair). Took a few minutes to complete but fixed everything.

Solution 11 - Ssis

Just install 32bit version of ADBE in passive mode:

run cmd in administrator mode and run this code:

>AccessDatabaseEngine.exe /passive

http://www.microsoft.com/en-us/download/details.aspx?id=13255

Solution 12 - Ssis

I had this issue and it took me a lot of time to figure this out. @tara's answer helped me to solve this problem but I couldn't really find the setting to set run in 64 bit to false. So, here is the screenshot for where you can find the setting

image for setting to turn 64 bit run off

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser3330998View Question on Stackoverflow
Solution 1 - SsisAlejandroRView Answer on Stackoverflow
Solution 2 - SsisChinaHelloWorldView Answer on Stackoverflow
Solution 3 - SsisTaraView Answer on Stackoverflow
Solution 4 - SsisTMNT2014View Answer on Stackoverflow
Solution 5 - SsisLuke PuplettView Answer on Stackoverflow
Solution 6 - SsiswiciuoView Answer on Stackoverflow
Solution 7 - SsisJoostView Answer on Stackoverflow
Solution 8 - SsisAndy BrownView Answer on Stackoverflow
Solution 9 - SsisJason MeyerView Answer on Stackoverflow
Solution 10 - Ssissmk081View Answer on Stackoverflow
Solution 11 - SsisShahram SohrabiView Answer on Stackoverflow
Solution 12 - SsisShadowView Answer on Stackoverflow