Import from .Excel .xls failis on 2012

  • ( Origally posted in the 2012 forum, but I haven't had any replies. apologies!)

    Hi,

    I am seeking some assistance in troubleshooting a package that imports data from a network location based Excel ( .xls ) file.

    The SSIS 2012 server is 64-bit.

    When I execute the package, from the Advanced tab I select 32-bit runtime.

    The error:

    "ImportWestPacBankStatement:Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.

    An OLE DB record is available. Source: ""Microsoft JET Database Engine"" Hresult: 0x80004005 Description: ""The Microsoft Jet database engine cannot open the file '\\server\directory$\folder\filename.xls'. It is already opened exclusively by another user, or you need permission to view its data."".

    "

    "Import Westac XLS:Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager ""Excel Connection Manager"" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.

    "

    I have checked that the account SSIS runs under has access to the file. ( I logged onto the PC with the SSIS agent account and checked the file, and it opens OK ).

    When 32-bit is not selected, I receive a different error:

    ImportWestPacBankStatement:Error: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver is not installed, run the package in 32-bit mode. Error code: 0x00000000.

    An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".

    So, I think that I am using the correct approach in using the 32-bit runtime, and I am certain as much as I can be that the account has the correct permissions, but it doesn't work.

    PS. on 2005 I had to run the 2005 written package with the dtexec command.

    eg: "c:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\dtexec.exe" /DTS "\MSDB\packagename" /SERVER servername /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V

    Thanks for any suggestions.

  • The error in the 32 bit mode is similar to a problem I have seen in the past where there is another task in your package that touches the file in question prior to the error but doesn't release it properly. Take a look at your other tasks and make sure everything is behaving as you need.

  • Hi,

    The first step in the package checks that the file exists using Visual Basic:

    Dim FileInfo As FileInfo

    ' Fill fileInfo variable with file information

    FileInfo = New FileInfo(Dts.Variables("User::strWestpacFileLocation").Value.ToString())

    'Check if file exists

    Dts.Variables("User::bFileExists").Value = FileInfo.Exists

    Dts.TaskResult = ScriptResults.Success

    I would not think that this would lock the file as it seem to be accepted as the best method of checking that the file exists...

  • If you put the Excel file on a local (to the server) drive, do you get the same error?

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • i had the same issue but take a look at the link it's a guide on how to handle import of Excel

    http://microsoft-ssis.blogspot.dk/2012/09/swtich-package-from-64bit-to-32bit.html

    .../simmy

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply