我有一堆啓用了宏的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
我得到的錯誤是:
如何解決此錯誤?我已經嘗試了很多東西並閱讀了所有內容,但無法超越這一點。
將手錶放在FileFound變量上,並在出現錯誤時查看該變量的值。它是什麼?它是一個完整的有效的現有文件路徑嗎? –
謝謝@TabAlleman。我會做你說的話,明天再報告,讓你知道結果! – MaxPD