SSIS import of Excel File - sql-server

I am trying to import an Excel file into SQL Server SSIS/Visual Studio
I am running a 64 bit Windows Install
Excel 2016 64 bit
Visual Studio Professional 2019
I keep getting the error :- "The requested ole db provider microsoft.ace.oledb.16.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode."
I have tried running both the 32 bit and 64 bit "Microsoft Access Database Engine 2010 Redistributable" separately
I have also set the Run64BitRuntime option to "True" and "False" depending on my bit version of Database Engine install but still getting the same error message.
I cannot save Excel as an older version as some posts suggest due to company standards.
Are there any other solutions?

Try using Microsoft Access Database Engine 2016

Related

Excel file import into SQL [duplicate]

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

The 'Microsoft.ACE.OLEDB.15.0' provider is not registered on the local machine. (System.Data) When Trying to Import Excel 2013 file into SSMS 18

I am getting the error in SSMS 18 when trying to import an excel file to a database:
The operation could not be completed.
ADDITIONAL INFORMATION:
The 'Microsoft.ACE.OLEDB.15.0' provider is not registered on the local machine. (System.Data)
When googling around for solutions, everyone seemed to have conflicting versions (64 vs. 32) but everything I am using is 64-bit.
System details:
Windows 10 x64-bit
Microsoft SQL Server Management Studio 18 (Standard Edition (64-bit))
Microsoft Excel 2013 64-bit
To check what 64-bit ACE provider is installed on the machine, just execute the following command in SSMS:
T-SQL
EXEC master.sys.sp_MSset_oledb_prop;
You can see its screen shot below.
Overall, there are 3 existing versions of ACE: 12.0, 15.0, and 16.0
You can change a misleading Excel version: dropdown to one of them, i.e to whatever version is installed.
If you need to install any of the ACE providers:
Microsoft Access Database Engine 2010 (Microsoft.ACE.OLEDB.12.0)
https://www.microsoft.com/en-us/download/details.aspx?id=13255
Microsoft Access 2013 Runtime (Microsoft.ACE.OLEDB.15.0)
https://www.microsoft.com/en-us/download/details.aspx?id=39358
Microsoft Access Database Engine 2016 (Microsoft.ACE.OLEDB.16.0)
https://www.microsoft.com/en-us/download/details.aspx?id=54920

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

How to add new connection provider to Visual Studio?

I'm using Visual Studio 2010 for development in business intelligence (BI). In window Connection Manager, there're 9 native providers :
Microsoft Jet 4.0 OLE DB Provider
Microsoft OLE DB Provider for Analysis Services 11.0
Micorsoft OLE DB Provider for Oracle
...
The provider needed is Microsoft Office 12.0 Access Database Engine OLE DB Provider (Microsoft.ACE.OLEDB.12.0), which is not included in this list. However, this provider does exist in my computer : I've used in Excel 2016, as a Microsoft Access connection provider.
So how can I "link" / "add" this provider to VS2010 and make it recognized ?
This is likely happening because you may have installed the 64-bit version of Microsoft Access Database Engine 2010 Redistributable.
Visual Studio / BIDS is a 32-bit application, and hence cannot "see" any of the 64-bit providers, including the Microsoft Office 12.0 Access Database Engine OLE DB Provider that you installed.
To fix this,
Uninstall the 64-bit redistributable that you previously installed.
Download and install the 32-bit redistributable from here. Note the link shows both 32-bit and 64-bit versions, make sure you select the 1st one (marked below)
Now you should be able to see your list of available connection managers.
Just for informational purposes...You see the provider via Excel because it is installed within the context of Office Suite of products. It is not a provider that is available system wide or where VS and SQL Server could utilize it; to get this you have to install the distribution pointed out by #Shiva.
An Example:
Learn more about 32 versus 64 bit history.

Cannot get crystal reports 8.5 reports to run under Windows 8 for a VB6 project

I have a rather large code base in visual basic 6. The database server is sql server 2000. For reports we are using Crystal Reports 8.5. I have been successful in installing the prerequisites including the visual basic runtime + sp6 components and everything else on windows 8 after a lot of googling. The only difference with installation of visual basic components on windows 8 in the fact that I had to uncheck installation of Data Access->Ado, RDS and Ole Db Providers. Now my crystal reports are not opening from inside my program AND the crystal reports 8.5 report designer. The error I get is "Unable to open SQL Server ". Does anyone have a solution? How do I install the ADO, RDS and OLEDB Providers manually?
See here: Installing the OLE DB Provider for SQL Server
and the middle of this page, where the ASOLEDB9.msi packages are (32 and 64 bit versions). Those packages will install the sqloledb provider.

Resources