Na základě předložených informací děláte vše správně. Pokud jste v SSIS noví, jednu věc bych vám doporučil, abyste získali kopii skvělého doplňku BIDSHelper . Má skvělé funkce, které vám mohou skutečně ušetřit čas, zejména s ohledem na konfigurace a výrazy.
Vytvořil jsem referenční balíček, který měl Excel Connection Manager odkazující na C:\ssisdata\so_paulsmithjr.xls
a vše zapojili.
V tuto chvíli vím, že věci fungují, takže nastal čas, aby se balíček posunul. Vytvořil jsem následující proměnné a jejich hodnoty
- Aktuální soubor – C:\ssisdata\so_paulsmithjr.xls
- PlaceHolder – ##FILE_PATH##
- TemplateConnection –
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=##FILE_PATH##;Extended Properties="Excel 8.0;HDR=YES";
Čtvrtá proměnná je nastavena jako výraz (klikněte pravým tlačítkem na proměnnou, okno vlastností. Nastavit Vyhodnotit jako Výraz =Pravda a výraz je níže)
- CurrentConnection –
REPLACE(@[User::TemplateConnection], @[User::PlaceHolder], @[User::CurrentFile])
Porovnal jsem hodnotu CurrentConnection s ReferenceConnection (což je původní hodnota připojovacího řetězce Excel Connection Manager) a věci byly shodné. Pokud bych v tomto okamžiku změnil hodnotu CurrentFile na C:\ssisdata\so_paulsmithjr - Copy.xls, automaticky by se to projevilo v hodnotě CurrentConnection.
Posledním trikem by bylo použití výrazu ve Správci připojení aplikace Excel. Opět klikněte pravým tlačítkem na CM a v části Vlastnosti budou výrazy. Nebude se roztahovat, protože pod ním nic není. Místo toho klikněte na elipsy a poté vyberte vlastnost ConnectionString a znovu vyberte elipsy a tentokrát přetáhněte dolů @[User::CurrentFile]
variabilní. Klikněte na OK x2 a váš správce připojení je nyní nastaven tak, aby se používal všude tam, kde to určuje proměnná CurrentConnection.
Funguje to lépe?