C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: SSIS(スクリプトタスク),MS365でのExcell参照


(過去ログ 169 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■97391 / inTopicNo.1)  SSIS(スクリプトタスク),MS365でのExcell参照
  
□投稿者/ 大谷刑部 (137回)-(2021/05/07(Fri) 12:02:51)

分類:[VB.NET/VB2005 以降] 

VSバージョン:2017(SSDT)
Office   :MS365 Apps For Business

という環境です。
SQLサーバーに定義済みの祝日マスタ(第何、何曜日形式に対応した定義)を実日に変換したうえでExcelの祝日マスタシートに取り込んで、さらにAccessのテーブルにエクスポートするというフローを
SSISで組んでいます。
それ自体は作動しているのですが、複数回実行が可能なように、Excel,Accessのレコード全削除フローを追加しようとして、Accessに関してはSQLタスクでDelete実行で実装できましたが、
Excelに関しては、OLEDBプロバイダーの仕様の関係上、Deleteに対応してないため、Accessと同じフローではできず、
ExcelクリアとかのフローもSSIS上に存在しないので、代わりにスクリプトタスク(VB)でロジック組んでみたのですが、
Excel.Aplicationのオブジェクト参照がおかしくなっているようで、該当のExcelファイルを開くWorkbooks.Openメソッドの時点でエラーが発生します。
メッセージとしてはExcel.AplicationClassをExcel.Aplicationにキャストできません的なメッセージが出ていて、確かにデバッグ実行するとExcel.Aplicationオブジェクト変数のプロパティーが全てエラーになってます。

Officeの環境としてはやや特殊でMS365自体は64bit版なんですが、SSISの方が64bit版のASEに対応してない関係で、Office(64bit)をインストールしてからAccess2013 32bitランタイムをインストールして、
SQLServer→Excelは2013用のACEの接続で実装してます。
(2016以降はインストールの時点で32/64bitの混在を許さないようにチェックがかかってるので2013をインストールするしかなかった)

上記のエラーメッセージはSSISでなく通常のVSでプロジェクト(コンソールアプリ)で作り直しても出てしまうので、SSIS固有の原因ではなく、Microsoft.Office.Interopの参照が上手くいってないのがほぼ原因であると推定されます。
SQLServer→Excelの関係上Access2013 32bitランタイム、アンインストールすることはできないんですが、その状態で、レジストリ等をきれいにする方法はあるんですかね?
あるいはスクリプトタスク以外でExcelのシートのレコードを空にする。フローをSSISのフローに組み込む手段ってありますか?

ご存知の方、ご回答をお願いします。




引用返信 編集キー/
■97413 / inTopicNo.2)  Re[1]: SSIS(スクリプトタスク),MS365でのExcell参照
□投稿者/ 大谷刑部 (139回)-(2021/05/11(Tue) 14:50:22)
No97391 (大谷刑部 さん) に返信
> Officeの環境としてはやや特殊でMS365自体は64bit版なんですが、SSISの方が64bit版のASEに対応してない関係で、Office(64bit)をインストールしてからAccess2013 32bitランタイムをインストールして、
> SQLServer→Excelは2013用のACEの接続で実装してます。
> (2016以降はインストールの時点で32/64bitの混在を許さないようにチェックがかかってるので2013をインストールするしかなかった)

自己レスですが
追記の情報として、ExcelVBA、VBS(WSH)からComの参照ならうまくいくようだったので、
ひとまずプロセス実行タスクでbat→vbs実行で代替のフローにはしています。

要するに、旧VB系言語からCom参照はできるが、.netからMicrosoft.Office.Interopの参照が正常にできない状況になってるようです。

代替手段はありますが、スクリプトタスク等でできる方法は知りたいので解決済みにはしません。

引用返信 編集キー/
■97445 / inTopicNo.3)  Re[2]: SSIS(スクリプトタスク),MS365でのExcell参照
□投稿者/ 大谷刑部 (141回)-(2021/05/14(Fri) 16:03:57)
別スレ立てたのでこっちは解決済みにします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -