2016-09-05 7 views
-1

このタスクは、同じフォルダ内の複数のファイルの各シートを同じSQL Serverテーブルにロードし、すべてのシートが同じ書式を持ち、同じSQLテーブルにロードできます。ネストされたforeachループコンテナの設定方法

私はビジュアルスタジオデータツール2010を使用しています。foreachループコンテナのForeach File Enumeratorを使用してループファイルを設定する方法と、foreachループコンテナのForeach ADO.NET Schema Rowset Enumeratorを使用してループシートを設定する方法を知っています。私の質問は、ファイルパスを動的に渡すことによって、これら2つのforeachループコンテナ間を接続する方法です。

@ [User :: fileFolder] + @ [User :: FileName]のように、[fullfilepath]にExcelアクセス接続マネージャ - >プロパティ--->式--->を設定しようとしました。 ]しかし、動作しません....

誰もがこれで助けることができますか?どうもありがとう!

Connection Manager config[![foreach loop conf[![DFT config] 2]あなたのエラーとの記述から3

+0

エラーメッセージや洞察で、「うまくいきません」と決めた理由が有益でしょう。 – Ferdipux

+0

私のエラーはエラーとして表示されます:接続名 "C:\ ssis \ Book1.xlsx"が接続リストに見つかりませんでした。 – Joan

答えて

-1

ありがとうございました。 ADO.NETを使用してシートの内部ループを作成しました。私が欠けていたものは、DFTのための1つの余分な接続マネージャーが欠けています。

0

は、それはあなたが式の中で、[名前]プロパティを設定している問題をされて表示されます。 [connection string]プロパティーを[fullfilepath]プロパティーのnameプロパティーに設定する必要があります。

あなたの編集とコメントについて。 興味深いことに、あなたがしたいことを正確に試してみませんでしたが、間違った接続マネージャー/プロバイダータイプを使用していたので、私はこのMS記事を確認して見つけることができるかどうかを確認するために、 https://msdn.microsoft.com/en-us/library/ms345182.aspxあなたが望むものとほぼ同じように見えます。

この記事では、使用しようとしているアクセスプロバイダではなく、Jet.OLEDB.4.0プロバイダの使用方法を示しています。私はあなたがACE OLEDBを使用して同じ結果を得るかどうか、あるいはあなたが試しなければならないか否かにかかわらず、肯定的ではありません。しかし、どちらの方法でも、接続文字列は、フラットファイルのようなファイルパスではなく、適切な接続文字列である必要があります。アクセス・ドライバは、記事を使用しJet 4.0のために

が示唆:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @[User::fullfilepath] + ";Extended Properties=\"" + @[User::ExtProperties] + "\"" 

バックは、拡張プロパティにスラッシュ、二重引用符を含めるためにエスケープシーケンスです。拡張プロパティは必須で、接続先のExcelのバージョンに関連しています。

など。エクセル12.0

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @[User::fullfilepath] + ";Extended Properties=Excel 8.0" 

2003にExcel 97の2007+

ためのACEドライバの場合、それだけで、ほぼ同じになるプロバイダーパートを変更します。

など。

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::fullfilepath] + ";Extended Properties=Excel 8.0" 
+0

私はあなたからのあなたのコメントや質問を理解していません。Excel接続のExpression構成のスクリーンショットで質問を更新することをお勧めします。また、そこで使用する変数の値を設定する方法とタイミングについても説明します。あなたのエラーに関するあなたのコメントからの問題は、間違った値を間違ったプロパティに割り当てているように思えます。 – Matt

+0

には4つの変数があります:Folder-> C:\ ssis \ Book1.xlsx;ファイル名 - >空白。 fullfilepath - > [User :: folder] + "\\" + [User :: filename]; sheetname-> blank私は[接続文字列]をfullfilepathに変更しましたが、最初のファイルがSQL Serverに繰り返し読み込まれ、最終的にエラーが発生します。[接続マネージャー "C:\ ssis \ Book1.xlsx"]エラー:接続文字列の形式が無効です。セミコロンで区切られたX = Yという形式の1つ以上のコンポーネントで構成されている必要があります。このエラーは、コンポーネントがゼロの接続文字列がデータベース接続マネージャーに設定されている場合に発生します。 – Joan

+0

こんにちはJoan、あなたのパッケージがどのように設定されているかの詳細を知らなくても問題を理解することは本当に難しいです。コントロールとデータのフロー、および変数値と式の値を設定する時期は、投稿を更新してください。それから、私たち/地域社会はあなたをより良く助けることができます。 Mattさん、ありがとうございます。 – Matt

関連する問題