SSIS Excel Source OpenRowset From Variable Error - 0x80040E37 - excel

When configuring an Excel Data Flow Component (Source) using the AccessMode of OpenRowset from Variable and setting the correct variable, I get the following error when trying to configure the shape/preview the data:
TITLE: Microsoft Visual Studio
Exception from HRESULT: 0xC02020E8
Error at Merge Files [Excel Source [2]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.
Error at Merge Files [Excel Source [2]]: Opening a rowset for "[WORKSHEET]" failed. Check that the object exists in the database.
I have checked that variable name is correctly set to the name of a valid worksheet.
How do I fix this error?

You need to append a dollar sign on the end of the worksheet variable, e.g. WORKSHEET$

Related

SSIS Excel Source - Error with empty DT_NTEXT column

We are currently facing an issue with Excel Source component. We have to read mutipples Excel files with same structure and insert their data into one SQL table.
We use ForEach container that read all the files in the specified folder (with variables) and transfer data to the SQL table. On the first file (whiwh was used for the Excel Source configuration), there is a column with more than 4000 chars (5036 exacly). Excel driver automatically identified it as DT_NTEXT (and it's ok) and the auto-created SQL table has NVARCHAR(MAX) as type.
On the fifth file, this column doesn't contains data at all. And when trying to transfer data, the package fails with the error below
[Excel Source [14]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E21.
An OLE DB record is available. Source: "Microsoft Access Database Engine" Hresult: 0x80040E21 Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
[Excel Source [14]] Error: Failed to retrieve long data for column "Comment".
[Excel Source [14]] Error: There was an error with Excel Source.Outputs[Excel Source Output] on Excel Source. The column status returned was: "DBSTATUS_UNAVAILABLE".
[Excel Source [14]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Excel Source.Outputs[Excel Source Output]" failed because error code 0xC0209071 occurred, and the error row disposition on "Excel Source" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on Excel Source returned error code 0xC0209029. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
I have made some search on the internet, no solution worked for me.
I tried:
Add IMEX=1 at the end of the Excel ConnectionString
Update the TypeGuessRows value on the registry key for the JET driver
Changed output type on Advanced Editor
and others solutions maybe, but I do not remember them all
Any idea on how to solve this?
Thanks

Import excel to SQL Server getting Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED

I AM RECIVING EROR:
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.
The PrimeOutput method on Excel Source 1 returned error code 0xC020902A.
The component returned a failure code when the pipeline engine called PrimeOutput().
The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.
There may be error messages posted before this with more information about the failure.
My Excel spreadsheet in one of the cells has multiple records similar to this one:
The buyer's xxxXXX xxxXXX xxxXXX xxxXXX xxxXXX xxxXXX "
Regretfully YYY*** YY*** YY*** YY*** YY*** YY*** YY***.
My destination column is nvarchar(MAX) NULL.
Any suggestion how to fix the issue?
This fix the issue with similar problem in my case:
near the Start button press drop-down menu arrow
choose package_name Debug Properties
than under Configuration Properties open Debugging
than under Debug Options choose Run64BitRuntime and turn it to False

SSIS File System Task Copy to New Excel File Name w/Date Variable Not Found

I have an SSIS File system Task to Copy an Excel template and create one with a date appended. I get the error saying "the connection is not found. This error is thrown by Connections collection when the specific connection element is not found." It's not found because I'm trying to make it!
The preceding error says "Error at File System Task: Failed to lock variable "c:\Reports\Unregistered_20150915.xlsx" for read access with error 0xC0010001 The variable cannot be found. This occurs when an attempt is made to retrieve a variable from the Variables collection on a container during execution of the package, and the variable is not there. The variable name may have changed or the variable is not being created".
I'm new to this, and all I want to do is run a procedure nightly and put the results in a new Excel file with the date name appended to the end. My plan was to take a blank worksheet/file and copy it into a new file, then execute the procedure on the server to load into this new file. As you can see, the variable is filling in the date just fine, so I don't understand how it says the variable cannot be found.
I've used these pages for guidance, but I am taking some of this and some of that, obviously missing something in between:
Including the Date in a Filename in SSIS using an Expression
and SSIS: Export a Query Result to a File
Any suggestions, articles, or videos would be vastly appreciated.
I found the error. When I set the destination variable, I also had an expression that kept kicking the variable out and using the evaluated result, which is not the name of the variable. I guess in some way that only a newbie can, I created the variable with the expression and created an additional expression which the program was trying to use concurrently.

Visual Basic error runtime error '91'

I am new to Microsoft Visual Basic and I'm trying to run an Excel macro built to parse an internet explorer htlml file. However I keep getting the following error "Run-time error '91': Object variable or With block variable not set. When I run microsoft visual basic I see the following highlighted in yellow:
Set nameElement = anElement.Children.Item(0).Children.Item(1).Children.Item(1).Children.Item(1).Children.Item(0).Children.Item(1)
Any suggestions on how to correct this error and get the macro up and running?

failed to import excel to sql server using ssis package

Hi im developping an ssis package that imports excel files (.xlsx) from an ftp server to a local folder then they are imported to a sql server table . I'm using a foreach mapping to the name of files. The import from the ftp server to local work fine, but the import from the local folder to the sql table failed.
It seems that I have a problem in excel source. These are the errors:
Start SSIS package "Package.dtsx."
Information: 0x1 at Script Task, C # My Message: System.Collections.ArrayList
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase begins.
Error: 0xC0202009 at Data Flow Task, Excel Source [1]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.
Error: 0xC02020E8 to Flow Task data, Excel Source [1]: Failed to open a rowset for "Sheet1 $". Verify that the object exists in the database.
Error: 0xC004706B to Flow Task data SSIS.Pipeline: validation failed "component" Excel Source "(1)". Returned validation status "VS_ISBROKEN."
Error: 0xC004700C to Flow Task data SSIS.Pipeline: Failed to validate one or more components.
Error: 0xC0024107 at Data Flow Task: There were errors during task validation.
Warning: 0x80019002 at Foreach Loop Container: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors (6) reached the maximum allowed (1); leading to a failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the value of MaximumErrorCount or fix the errors.
SSIS package "Package.dtsx" finished: Success.
The program '[5504] Package.dtsx: DTS' has exited with code 0 (0x0).
As configuration I have:
For the excel manager connexion, I made an expression for connectionString = #[User::variable1] + #[User::DOWNLOAD_DIRECTORY_LOCAL] + #[User::FTP_FILE_URL] + #[User::variable2]
variable 1 =Provider=Microsoft.ACE.OLEDB.12.0;Data Source=
variable 2 = ;Extended Properties="EXCEL 12.0;HDR=YES";
I made also the delay validation property to true for data flow task, ftp task, foreach task and excel connection.
I just wrote a package to do the very same thing myself. Things to check in this order:
in your Excel Data Connection have you browsed to the excel files in your local folder (once they are there) and selected one (you need to copy one in there while developing)? so when you go to your excel source object inside your Data Flow Task (inside the For Each) you can select the Excel Data Connection and then see Sheet$1 under "name of the excel sheet"?
Once you are sure you have done above have you then right-clicked on the Excel Data Connection and in the Expressions property added ExcelFilePath = #[User::FTP_FILE_URL]? (note you need to select 'Fully Qualified' under Retrieve File Name on the Collection tab of the For Each container)
in your Excel Data Connection have you selected the right version (Excel 2007) for the .xlsx files or Excel 2003 for .xls? I noticed a small bug where when I changed the filename it defaulted back to 2007, I had to manually change it back (again) to 2003.
Check at least one workbook exists in the folder before the step runs. There is some code around here about how to add a script task to validate at least one file being in User::DOWNLOAD_DIRECTORY_LOCAL.
I got a load of errors about the driver for Microsoft.ACE.OLEDB.12.0, plus had issues with a 64-bit server and had to wrap the package in a job and check the 'use 32-bit runtime' option under execution options in the job properties. Check the driver is working OK (although it usually gives a specific driver error if you haven't got it set up right).
Um that's it offhand just quickly before I head home. Let me know if it works or is still a fail..
The question you should ask yourself when having this issue is:
Where do I run my dstx file from ?
Is it from Microsoft Visual Studio ?
Is it from a SQL Agent ?
Is it from the Integration Services Package Execution Utiliy ?
Then refine your question to find the answer on the forums.

Resources