Excel file import into SQL [duplicate] - sql-server

I get this error when I try to connect to any excel through MSSQL Server Data Import i.e. SSIS package The Microsoft.ACE.OLEDB.16.0 provider is not registered on the local machine. (System.Data)
It is not the same version I think some other patching is needed

For anyone that is still stuck on this issue after trying the above. If you are right-clicking on the database and going to tasks->import, then here is the issue. Go to your start menu and under sql server, find the x64 bit import export wizard and try that. Worked like a charm for me, but it took me FAR too long to find it Microsoft!

Note: I am running SQL 2016 Developer 64bit, Office 2016 64bit.
I had the same issue and solved it by downloading the following:
Download and install this:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Whatever file you are trying to access/import, make sure you select it as a Office 2010 file (even though it might be a Office 2016 file).
It works.
Source

As a quick workaround I just saved the workbook as an Excel 97-2003 .xls file. I was able to import with that format with no error.

If you have OS(64bit) and SSMS(64bit) and already install the AccessDatabaseEngine(64bit) and you still received an error, try this following solutions:
1: direct opening the sql server import and export wizard.
if you able to connect using direct sql server import and export wizard, then importing from SSMS is the issue, it's like activating 32bit if you import data from SSMS.
Instead of installing AccessDatabaseEngine(64bit) , try to use the AccessDatabaseEngine(32bit) , upon installation, windows will stop you for continuing the installation if you already have another app installed , if so , then use the following steps. This is from the MICROSOFT. The Quiet Installation.
If Office 365 is already installed, side by side detection will prevent the installation from proceeding. Instead perform a /quiet install of these components from command line. To do so, download the desired AccessDatabaseEngine.exe or AccessDatabaeEngine_x64.exe to your PC, open an administrative command prompt, and provide the installation path and switch Ex: C:\Files\AccessDatabaseEngine.exe /quiet
or check in the Addition Information content from the link below,
https://www.microsoft.com/en-us/download/details.aspx?id=54920

An alternative that works for me is to simply convert to a CSV.

Against other answers here, you can just install "ACEDB driver 64-bit" next to the other 64-bit Microsoft program.
In my case, I had "Microsoft 365" 64-bit (Microsoft Office 365) installed.
Because of the error
'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local
machine. (System.Data)
I tried installing Microsoft Access Database Engine 2016 Redistributable. But I got errors for 32-bit and 64-bit installers.
64-bit:
You cannot install the 64-bit version of Microsoft Access Database
Engine 2016 because you currently have 64-bit Office products
installed. If you want to install 32-bit Microsoft Access Database
Engine 2016, you will first need to remove the 64-bit installation of
Office products. After uninstalling the following product(s), rerun
setup in order to install 32-bit version of Microsoft Access Database
Engine 2016: Office 16 Click-to-Run Extensibility Component 64-bit
Registration
or 32-bit:
You cannot install the 32-bit version of Microsoft Access Database
Engine 2016 because you currently have 64-bit Office products
installed. If you want to install 32-bit Microsoft Access Database
Engine 2016, you will first need to remove the 64-bit installation of
Office products. After uninstalling the following product(s), rerun
setup in order to install 32-bit version of Microsoft Access Database
Engine 2016: Office 16 Click-to-Run Extensibility Component 64-bit
Registration
I could not uninstall single components:
The steps:
No need to uninstall and reinstall anything.
Press "Download" at Microsoft Access Database Engine 2016 Redistributable
Choose AccessDatabaseEngine_X64.exe. No need to install 32-bit AccessDatabaseEngine.exe, against other answers.
Run the executable from command prompt:
C:\Users\myuser\Downloads>AccessDatabaseEngine_X64.exe /quiet
Press OK for the administrator rights if asked for.
After this, my macro could fetch data from an Excel worksheet. I checked my local Microsoft Access of the Microsoft 365 package and it still worked.
Credits go to You cannot install the 32/64 bit version of Microsoft Access Database Engine because you currently have 64/32 bit Office and its source at How to install Microsoft.Ace.oledb 32 bit with Office 64-bit?.

ACE.oledb.16.0 dosen't work in the 64-bit os
download patch from
https://www.microsoft.com/en-us/download/details.aspx?id=13255

If you have Office 365:
Download 32 Bit version here
Run Command Prompt as Administrator --> C:\Downloads\AccessDatabaseEngine.exe /quiet
Close SSMS & Reopen, Try Importing File again.
Doesnt work?
Download 64 bit version here
Run Command Prompt as Administrator --> C:\Downloads\AccessDatabaseEngine_X64.exe /quiet
Close SSMS & Reopen, Import File.
Note:
Path to dowbloaded executable might be "C:\Downloads\User\USERNAME\Downloads\AccessDatabaseEngine.exe" for example

You have to use now the new XLSX-Driver from Access-Redist (32/64-Bit).
The current XLS-Driver are corrupted since last cumulative update.

Follow these steps:
Go [here][1], download Microsoft Access Database Engine 2016 Redistributable and install
Close SQL Server Management Studio
Go to Start Menu -> Microsoft SQL Server 2017 -> SQL Server 2017 Import and Export Data (64-bit)
Open the application and try to import data using the "Excel 2016" option, it should work fine.

After having both installed the Microsoft Access Database Engine 2016 Redistributable and found the x64 bit import export wizard as instructed in the answers above, I had one last hoop to jump through. I got this error 'Executing the query "CREATE TABLE ...." failed with the following error: "Culture is not supported ... 3072 (0x0c00) is an invalid culture identifier."'
The fix was to go to Control Panel -> Clock and Region -> change my "English (Finland)" region to pure Finnish (Finland). Other more traditional cultures such as en-US will work too. I think I first saw this solution here: Fix culture is not supported: 3072 by changing Region Formats

Related

Access Database engine OLEDB in windows server 2016

I have an application that uses Microsoft ACE OLEDB 12.0 driver and hence I have installed 2007 Office System Driver: Data Connectivity Components in my system.
I also have created SSIS packages to pull data from the excel and csv files which get's inserted into the SQL tables using the Microsoft ACE OLEDB 12.0. Below is my connection string
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;
Extended Properties="Excel 8.0;HDR=YES";
I wanted to move these applications to the server environment for deployment and When I reached out to the IT for getting Office 2007 system driver to be installed, they said it's not supported in Windows server 2016 and have security vulnerabilities.
Hence I wanted to know whether we have any alternate Microsoft OLEDB provider for SSIS operation? I tried installing office 2010 however I got the error message that
Microsoft OLEDB 12.0 is not registered on my machine.
Will installing Microsoft Access Database Engine 2016 Redistributable help me out in resolving the problem. If yes what will be my connection string. Is the below one correct?
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";
The office 2016 oledb is also not supported in windows server 2016. Hence what security vulnerabilities will occur when we install Office 2007 or 2016 on windows server 2016?
Any help will be highly appreeciated.
Microsoft OLEDB 12.0 is not registered on my machine.
Since you installed Access Database Engine 2010 and you received the error above, then it looks like it is a 32/64 bit problem.
Make sure you installed both redistributables 32 and 64.
If you need to install AccessDataBaseEngine x64 alongside with 32-bit installation, you need to run the installation in passive mode:
Passive mode installation steps
Open the Command Prompt by typing cmd in the Windows search box under the Start menu and selecting cmd.exe
Type the file path and file name of the 64-bit Access Database Engine 2010 install file, followed by a space and /passive (this runs the installation without showing any error messages).
Open the Registry Editor by typing regedit in the Windows search box under the Start menu and selecting regedit.exe
Delete or rename the mso.dll registry value in the following registry key:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths"
More details and screenshots are found in the link below
Reference
How to install 64-bit Microsoft Database Drivers alongside 32-bit Microsoft Office

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

I have Windows 10 pro x64,
Excel 2016 32 bit
and Sql server 2017.
I want to import excel file to sql server, I need to use 32-bit wizard because Microsoft Excel is not shown in 64-bit version, but I face this error:
The 'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local machine. (System.Data)
If you are having problems installing the engine because components are already installed, do this (from Microsoft):
If Office 365 is already installed, side by side detection will prevent the installation from proceeding. Instead perform a /quiet install of these components from command line. To do so, download the AccessDatabaeEngine_x64.exe to your PC, open an administrative command prompt, and provide the installation path and switch Ex: C:\Files\AccessDatabaseEngine_x64.exe /quiet
I had success doing the following (I use Excel 2016 and SSMS 2017)
From Excel
File -> Export -> Change File Type -> Excel 97- 2003 (*.xls)
If you have OS(64bit) and SSMS(64bit) and already install the AccessDatabaseEngine(64bit) and you still received an error, try this following solutions:
1: direct opening the sql server import and export wizard.
if you able to connect using direct sql server import and export wizard, then importing from SSMS is the issue, it's like activating 32bit if you import data from SSMS.
Instead of installing AccessDatabaseEngine(64bit) , try to use the AccessDatabaseEngine(32bit) , upon installation, windows will stop you for continuing the installation if you already have another app installed , if so , then use the following steps. This is from the MICROSOFT. The Quiet Installation.
If Office 365 is already installed, side by side detection will prevent the installation from proceeding. Instead perform a /quiet install of these components from command line. To do so, download the desired AccessDatabaseEngine.exe or AccessDatabaeEngine_x64.exe to your PC, open an administrative command prompt, and provide the installation path and switch Ex: C:\Files\AccessDatabaseEngine.exe /quiet
or check in the Addition Information content from the link below,
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Use this link to download the 64 bit version of the Microsoft Access Database Engine 2016 Redistributable:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Once installed you can open the import export wizard 64 bit and you will have a data source option for excel.
This is a workaround solution. Ultimately, converting the Excel document to a CSV and using the Tasks/Import Data/Flat File Source option imported my data (although, I was not able to successfully map my datatypes in the import, which I can fix with CAST() later). On upload, change File type to CSV from TXT.
I have Office 365. I used a CSV and gave up on XLSX because:
When I ran the 32 bit version of the AccessDatabaseEngine.exe, I received this error:
When I ran the 64 bit version of AccessDatabaseEnginex64.exe, I received this error:
If you have the Microsoft Access Database Engine and still are facing the same issue make sure that you are accessing the Microsoft SQL Server Management Studio as Administrator.
Instead of using the import/export tasks provided under the database, I utilized "SQL Server 2016 Import and Export Data (64-bit)" service comes with MS SQL Server 2016 installation as per suggested here. In windows 10 you can find it under SQL Server 2016 app. In your case, find SQL Server 2016 Import and Export Data (32-bit) service available in same location.

"Unexpected error from external database driver (1)."

I have .xlsx file with 27,000 rows. When executing the SSIS package on the server I get the above error. I have tried running the package in 32-bit mode, it did not work. Microsoft does not have a good explanation. I have installed access driver on my machine and on the server.
Assuming that you tried running in 32-bit, and you downloaded Access Database Engine and the issue is not solved
This is caused by a windows security update, this is noticed in the Microsoft Support article, also they provided patches link.
There is a similar question on MSDN about this issue, read the accepted answers:
Unexpected error from external database driver (1)
Side Note: Try opening the Excel and saving it as new Excel workbook to ensure that the excel is not damaged
Remove the Ace Oledb driver 10 and install Ace 2016 version .The Security patch Microsoft provided in October 2017 is causing this issue. Test your SSIS package locally ,if everything is fine install Ace 2016 version on your server .
Here is the download link:
Microsoft Access Database Engine 2016 Redistributable
This issue is caused if the Excel file is in Read-Only mode. Changing the Read-Only mode will fix the issue.

Error installing SQL Server 2016 Code 0X800736CC

I've reformatted my machine around 3 times. I'm on windows 10 and I've selected the erase all apps and files option and I'm still not able to install sql server express 2016. I'm presented with this error when trying to install.
‘Microsoft.VC80.MFC,version=”8.0.50727.4053″,publicKeyToken=”1fc8b3b9a1e18e3b”,processorArchitecture=”x86″,type=”win32″‘. Please refer to Help and Support for more information. HRESULT: 0x800736CC.
I've tried many many things. I've reformatted, I've tried running the file as admin, tried other versions such as stand edition 2012, tried to install the files while deleting 2010 c++ distribution. I've ran .net repair tool and nothing as well.
The problem stemmed when I manually uninstalled .net 4.5.1 framework using add/remove programs. I think my system files or registry is corrupted.
I think the error says, you have a 32 bit machine(processorArchitecture=”x86″) and you are trying to install 64 bit app ,which is not possible
further there is no 32 bit version of SQLSERVER from SQL2016 onwards
Some of you may have noticed that Microsoft recently released SQL Server 2016 CTP 2.4. There is one major change that I am very happy about – x86, or the 32-bit version, is no longer included. SQL Server 2016 is now 64-bit only
you can try downloading SQL2014 express version which comes in both versions..here is a link to download :Download SQL Server Express

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

I get this error when I try to connect to any excel through MSSQL Server Data Import i.e. SSIS package The Microsoft.ACE.OLEDB.16.0 provider is not registered on the local machine. (System.Data)
It is not the same version I think some other patching is needed
For anyone that is still stuck on this issue after trying the above. If you are right-clicking on the database and going to tasks->import, then here is the issue. Go to your start menu and under sql server, find the x64 bit import export wizard and try that. Worked like a charm for me, but it took me FAR too long to find it Microsoft!
Note: I am running SQL 2016 Developer 64bit, Office 2016 64bit.
I had the same issue and solved it by downloading the following:
Download and install this:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Whatever file you are trying to access/import, make sure you select it as a Office 2010 file (even though it might be a Office 2016 file).
It works.
Source
As a quick workaround I just saved the workbook as an Excel 97-2003 .xls file. I was able to import with that format with no error.
If you have OS(64bit) and SSMS(64bit) and already install the AccessDatabaseEngine(64bit) and you still received an error, try this following solutions:
1: direct opening the sql server import and export wizard.
if you able to connect using direct sql server import and export wizard, then importing from SSMS is the issue, it's like activating 32bit if you import data from SSMS.
Instead of installing AccessDatabaseEngine(64bit) , try to use the AccessDatabaseEngine(32bit) , upon installation, windows will stop you for continuing the installation if you already have another app installed , if so , then use the following steps. This is from the MICROSOFT. The Quiet Installation.
If Office 365 is already installed, side by side detection will prevent the installation from proceeding. Instead perform a /quiet install of these components from command line. To do so, download the desired AccessDatabaseEngine.exe or AccessDatabaeEngine_x64.exe to your PC, open an administrative command prompt, and provide the installation path and switch Ex: C:\Files\AccessDatabaseEngine.exe /quiet
or check in the Addition Information content from the link below,
https://www.microsoft.com/en-us/download/details.aspx?id=54920
An alternative that works for me is to simply convert to a CSV.
Against other answers here, you can just install "ACEDB driver 64-bit" next to the other 64-bit Microsoft program.
In my case, I had "Microsoft 365" 64-bit (Microsoft Office 365) installed.
Because of the error
'Microsoft.ACE.OLEDB.16.0' provider is not registered on the local
machine. (System.Data)
I tried installing Microsoft Access Database Engine 2016 Redistributable. But I got errors for 32-bit and 64-bit installers.
64-bit:
You cannot install the 64-bit version of Microsoft Access Database
Engine 2016 because you currently have 64-bit Office products
installed. If you want to install 32-bit Microsoft Access Database
Engine 2016, you will first need to remove the 64-bit installation of
Office products. After uninstalling the following product(s), rerun
setup in order to install 32-bit version of Microsoft Access Database
Engine 2016: Office 16 Click-to-Run Extensibility Component 64-bit
Registration
or 32-bit:
You cannot install the 32-bit version of Microsoft Access Database
Engine 2016 because you currently have 64-bit Office products
installed. If you want to install 32-bit Microsoft Access Database
Engine 2016, you will first need to remove the 64-bit installation of
Office products. After uninstalling the following product(s), rerun
setup in order to install 32-bit version of Microsoft Access Database
Engine 2016: Office 16 Click-to-Run Extensibility Component 64-bit
Registration
I could not uninstall single components:
The steps:
No need to uninstall and reinstall anything.
Press "Download" at Microsoft Access Database Engine 2016 Redistributable
Choose AccessDatabaseEngine_X64.exe. No need to install 32-bit AccessDatabaseEngine.exe, against other answers.
Run the executable from command prompt:
C:\Users\myuser\Downloads>AccessDatabaseEngine_X64.exe /quiet
Press OK for the administrator rights if asked for.
After this, my macro could fetch data from an Excel worksheet. I checked my local Microsoft Access of the Microsoft 365 package and it still worked.
Credits go to You cannot install the 32/64 bit version of Microsoft Access Database Engine because you currently have 64/32 bit Office and its source at How to install Microsoft.Ace.oledb 32 bit with Office 64-bit?.
ACE.oledb.16.0 dosen't work in the 64-bit os
download patch from
https://www.microsoft.com/en-us/download/details.aspx?id=13255
If you have Office 365:
Download 32 Bit version here
Run Command Prompt as Administrator --> C:\Downloads\AccessDatabaseEngine.exe /quiet
Close SSMS & Reopen, Try Importing File again.
Doesnt work?
Download 64 bit version here
Run Command Prompt as Administrator --> C:\Downloads\AccessDatabaseEngine_X64.exe /quiet
Close SSMS & Reopen, Import File.
Note:
Path to dowbloaded executable might be "C:\Downloads\User\USERNAME\Downloads\AccessDatabaseEngine.exe" for example
You have to use now the new XLSX-Driver from Access-Redist (32/64-Bit).
The current XLS-Driver are corrupted since last cumulative update.
Follow these steps:
Go [here][1], download Microsoft Access Database Engine 2016 Redistributable and install
Close SQL Server Management Studio
Go to Start Menu -> Microsoft SQL Server 2017 -> SQL Server 2017 Import and Export Data (64-bit)
Open the application and try to import data using the "Excel 2016" option, it should work fine.
After having both installed the Microsoft Access Database Engine 2016 Redistributable and found the x64 bit import export wizard as instructed in the answers above, I had one last hoop to jump through. I got this error 'Executing the query "CREATE TABLE ...." failed with the following error: "Culture is not supported ... 3072 (0x0c00) is an invalid culture identifier."'
The fix was to go to Control Panel -> Clock and Region -> change my "English (Finland)" region to pure Finnish (Finland). Other more traditional cultures such as en-US will work too. I think I first saw this solution here: Fix culture is not supported: 3072 by changing Region Formats

Resources