SSIS で静的な ole db > Excel 接続マネージャーを使用する場合、Excel 接続マネージャーで接続するファイルを設定し、データ フローの Excel 宛先を作成し、それを ole db ソースに接続してフィールドをマップします。
この場合、同じことをしたいのですが、既存のファイルにリンクする代わりに、新しいファイルを作成してそこにデータを置きたいと思います。これで、SQL タスクを実行して、既存の Excel 接続で新しいテーブル (効果的にシート) を作成できることがわかりましたが、この場合、スクリプト タスクを作成して、新しいファイルが移動する完全なパス (c:\docs\ など) を作成しました。次のコードを含む mypjt\fileformarch.xls:
Public Sub Main()
'
' Add your code here
'
Dim strFileName As String
Dim strFolderName As String
Dim strMonthNameShort As String
Dim strFullPath As String
Dim lastMonth As New Date(DateTime.Today.Year, DateTime.Today.Month - 1, 1)
strFileName = Dts.Variables("FileName").Value.ToString
strFolderName = Dts.Variables("FolderName").Value.ToString
strMonthNameShort = MonthName(lastMonth.Month, True)
strFullPath = strFolderName & strFileName.Substring(0, strFileName.IndexOf(".xls")) & strMonthNameShort & ".xls"
Dts.Variables("FullPath").Value = strFullPath
Dts.TaskResult = Dts.Results.Success
End Sub
しかし、動的接続とマッピングを作成する方法がわかりません.Excel接続マネージャーなどで接続文字列をいじってみました.
デフォルトのマッピングを設定するために列見出しを含むテンプレートが必要かどうかはわかりませんが、Excel 接続マネージャーが「a」ファイルへの初期接続のみを必要とし、実行時に動的接続文字列プロパティが引き継がれる多くのケースを読みました。しかし、新しいファイルを作成している場合、マッピングが何であるかをどのように知るのでしょうか?
アドバイスをいただければ幸いです。
ありがとう
アンドリュー