Is it actually possible to create SSIS packages in a 64-bit environment that use Excel 2007 sources and destinations? - excel

Windows 10 Pro 64-bit (Version 1903)
Sql Server 2019.
VS 2010.
MS Office 2016 64-bit.
Moving a legacy SSIS package from an older 64-bit environment.
Unable to create an Excel Source or Destination in VS. When attempting Excel 2007, then VS complains that ACE.OLEDB is not registered. When attempting Excel 97, VS complains about JET. The messages have not changed either before or after installing Access Database Engine end Microsoft Access Runtime 2010. Beginning to wonder if this is supported at all.

Related

Error 3706 Visual FoxPro OLE DB Provider and Excel

I made an application that uses VBA in order to read Excel 2013 sheets, and save data in Visual FoxPro tables. This app runs very fine in my computer, but when I run on another computer, issues this error: “Run time error 3706 Provider cannot be found, it may not be properly installed.” I installed, uninstalled, and back to install OLE DB Provider (Microsoft OLE DB Provider for Visual FoxPro, that comes with VFP SP2) and VFP runtime files (VFP 9 SP2), but error is issued again. Why does it happen? How can I solve that?
Both computers uses Microsoft Windows 7 Professional SP1 64 bits and Microsoft Office 2013 Professional 32 Bits.
Thanks in advance for your help.
Instead of using VBA and VFPOLEDB, simply use VFP and Microsoft.ACE.Oledb driver to read excel tables. You can check:
importing exporting excel files sample

MS Management studio import wizard External table is not in the expected format. Excel (XLSX)

I am using the SQL managment studio to run the import wizard to get data from excel file (XlSX). I get the following error:
External table is not in the expected format. (Microsoft Office Access Database Engine)
The excel file is not password protected and it was created in office 2003 (95% sure)
I have read articles suggesting missing drivers. I have installed all the following:
Microsoft Office version Download
2016 Microsoft Access 2016 Runtime
2013 Microsoft Access 2013 Runtime
2010 Microsoft Access 2010 Runtime
2007 2007 Office System Driver: Data Connectivity Components
Nothing of these worked for me. However; if I open the excel file, click save, close it and then import it using the wizard it works.
The problem is that I would like to automate this process. So opening 200 files, save them, and then close them is not an option.
My specs:
windows 10,
Microsoft SQL Server Management Studio 12.0.4459.0
Microsoft Analysis Services Client Tools 12.0.4459.0
Microsoft Data Access Components (MDAC) 10.0.14393.0
Microsoft MSXML 3.0 4.0 5.0 6.0
Microsoft Internet Explorer 9.11.14393.0
Microsoft .NET Framework 4.0.30319.42000
Operating System 6.3.14393
The only thing that I found starnge here is the following:
Microsoft MSXML 3.0 4.0 5.0 6.0.
Is this the correct value. If not, how do I update it?
This is my second day looking for a solution to this problem with no luck. If anyone could help.

32-bit and 64-bit Office on the same pc - trouble with MS access database driver

I received an error while trying to execute an MS SSIS package that contained Excel source:
"The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine".
While trying to install MS Access Database driver 64-bit, and then MS Access Database driver 32-bit, I get two conflicting errors:
"You cannot install the 64 bit version of Microsoft Access Database Engine because you have 32 bit Office Products installed"
and
"You cannot install the 32 bit version of Microsoft Access Database Engine because you have 64 bit Office Products installed"
I guess that on my pc 32-bit and 64-bit versions of office are running.
The interesting thing though is that I see that only MS office 2010 and MS office Viewer 2003 are installed on my machine and the latter through a 2007 compatibility package.
So, my question is probably two fold:
Is running the driver the proper way to solve my initial problem?
How can I overcome the situation where neither a 32-bit nor a 64-bit can be installed because there exist both 32-bit and 64-bit office versions on my pc.
Please keep in mind that I am not sure what should I uninstall. Office 2010 and MS windows viewer 2003 are running on my pc.
I came across the same conflicting error messages when installing the Access Database Engine.
Since I new I had installed a 32bit office, I installed the 32bit version of Access Database Engine with this command:
.\AccessDatabaseEngine.exe /quiet
I found this trick here: https://blogs.msdn.microsoft.com/dataaccesstechnologies/2017/10/18/unexpected-error-from-external-database-driver-1-microsoft-jet-database-engine-after-applying-october-security-updates/
By the way, in my case one of the two error messages was also mentioning that I had installed the click to run extensibility component 64-bit registration.
only one version 32/64bit of Microsoft Access Database Engine 2010 Redistributable can be installed.
Download it from this link https://www.microsoft.com/en-us/download/details.aspx?id=13255

Error in OleDbConnection.Open() when trying to read Excel XLSB

I'm using Visual Studio 2013 with MVC 3 Razor. I'm able to upload and save XLSB file, and I'm trying to read data from the uploaded XLSB. I have the below connection string and method to initialize the OleDbConnection:
strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 8.0;HDR=True'";
OleDbConnection connExcel = new OleDbConnection(strConStr);
The error occur at connExcel.Open(). Below is the error message:
An exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll but was not handled in user code
Additional information: This file was created in a previous beta version of Excel 2007. Open the file with Excel 2007 to save it to the most recent version of the Excel 2007 file format before opening the file in Access 2007.
I had AccessDatabaseEngine installed in my PC. In my control panel, I have the following installed engine info:
Name: Microsoft Office Access database engine 2007 (English)
,Size: 19.2 MB
,Version: 12.0.4518.1031
I'm not sure if this is the correct version to read XLSB file. My PC is x64 bit by the way.
My colleague also have the same type of Microsoft Office Access database engine 2007 installed in his PC but his version is "12.0.66XX", the code works fine on his side.
Please let me know if I need to install another version of Access Database Engine, or any other way to resolve this error.
I'm able to resolve this after a long studies and research.
Apart of the Microsoft Office Access database engine 2007 that is already installed in my machine, I also download and install Microsoft Access Database Engine 2010 Redistributable.
After that, I need to download Microsoft Office Access Runtime and Data Connectivity 2007 Service Pack 2 (SP2) to install and then reboot my machine.
Everything work like magic afterwards.
And this is my working connection string:
strConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\Excel1.xlsb;Extended Properties='Excel 12.0;HDR=True'";

How to use redistributable PIA 2010 to create excel application on machine which doesn't have MS Office client installed

From last couple of days I'm struggling with redistributable PIA 2010. Actually I have created one excel application locally, which uses 2007 PIA (I have also MS Office installed on my machine). This application was working fine, now I have installed the 2010 PIA and register it's Microsoft.Office.Interop.Excel dll then I have deleted then added this new dll in my earlier created excel application, but now application crashes on creation of excel object. i.e.
var app = new Application();
and below error is showing on browser.
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
Now, could anyone tell me what exactly wrong am I doing? Is this is the right approach to create excel application using only redistributable PIA 2010. If not, please help me out what is the correct approach to resolve this.
Redistributable PIAs are just a "complement" required by VS 2008 and older. The given MS Office version has to be installed on the target computer anyway. If you created an application relying on the Microsoft Excel Object of Office 2010 (version 14.0), it would only work on computers where Office 2010 is installed. If, on top of that, you built it by using VS 2008 or older, you would have also to install the corresponding PIA package.

Resources