2016-04-25 87 views
0

我有一堆啓用了宏的Excel文件。我想通過一個SQL查詢 - select * from [Sheet1$A10:AZ100]來遍歷它們中的每一個。當我選擇了一個文件時,我的Excel連接管理器工作正常,但是當我添加一個For Each Loop Task併爲其分配我的變量時,存在很大的問題。 我的步驟是:
通過XLSM文件循環SSIS 2012

  • 創建新的連接:Excel連接管理器 我選擇的文件夾中的第一個XLSM文件並點擊OK。

  • 拖放每個環路容器並雙擊。 在集合中:我選擇For Each File Enumerator並在文件夾中指定文件夾路徑。在文件:* .XLSM最後一個選項是:完全合格
    變量映射:我創建了一個名爲「的FileFound」

  • 拖放數據流任務在每個容器,並雙擊新的變量。

  • 拖動源助手:選擇Excel連接管理器上面

  • 創建雙單擊Excel源和數據訪問模式:我選擇SQL命令。我的查詢是select * from [Sheet1$A10:AZ100]。該查詢對於所有XLSM文件都是相同的。

  • 點擊列和我的數據顯示一切OK

現在,這是哪裏出了問題starts-

右鍵點擊Excel連接管理器和命中屬性。

  • 我首先複製我的連接字符串。我的連接字符串是:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Excel data\ABCDE.xlsm;Extended Properties="Excel 12.0 MACRO;HDR=YES";

  • 我點擊表達式並選擇屬性中的連接字符串。接下來我編輯我的表達式如下: "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FileFound] + " ;Extended Properties=\"Excel 12.0 MACRO;HDR=YES\";" 這個評估正確。

  • 我然後設置Excel連接管理器的延遲確認爲TRUE

  • 我設定延遲確認的每個集裝箱爲TRUE

我得到的錯誤是:

Error Message

如何解決此錯誤?我已經嘗試了很多東西並閱讀了所有內容,但無法超越這一點。

+0

將手錶放在FileFound變量上,並在出現錯誤時查看該變量的值。它是什麼?它是一個完整的有效的現有文件路徑嗎? –

+0

謝謝@TabAlleman。我會做你說的話,明天再報告,讓你知道結果! – MaxPD

回答

1

我修好了!

我必須右鍵單擊「Excel連接管理器」的屬性,而不是在擴展屬性中選擇ConnectionString,我必須選擇Excel File Path