UIPATHからMS ACCESSで作成したクエリー実行を考えています。
数本でしたらUIPATHでクエリーを選択して実行することを以前行ったことがあります。
多数のクエリーの実行を考えるとUIPATHからどのようにすべきかご教示ください。
あるいは、BalaReva access Activitiesをインストールしてaccess マクロで対応した方がよいでしょうか。
よろしくお願いいたします。
UIPATHからMS ACCESSで作成したクエリー実行を考えています。
数本でしたらUIPATHでクエリーを選択して実行することを以前行ったことがあります。
多数のクエリーの実行を考えるとUIPATHからどのようにすべきかご教示ください。
あるいは、BalaReva access Activitiesをインストールしてaccess マクロで対応した方がよいでしょうか。
よろしくお願いいたします。
どうやるのがBestなのかまだ吟味してないですが、今の所以下のように組み込んでます。
・プロセスを開始アクティビティで *.accdb起動。/xで実行マクロ指定。/cmdで引数指定(エクスポートするファイル名等)
(Access起動が見えてしまうけど気にしない)
・別プロセスで実行することになるので、ファイルがエクスポートされるまでUiPath側で待機。
複数ファイルのエクスポートがあっても、最後に出すファイルのみ監視で可。
(Accessがエラー停止する可能性もあるので、待機時間に制限をもたせること。超えたら TimeoutExceptionを発動)
・エクスポートされたファイルをUiPathで読み込んで処理継続。
複数のシートを読み込んで連結や集計、項目選択などが多いときは Accessが楽なので結構使ってます。
AutoExecではなく /xで実行マクロが指定できるので、1つのaccdbに複数マクロ作れるのも好都合です。
BalaReva access Activitiesの Execute Macro試してみました。
Accessの実行終了を待機してくれるのがありがたい。
しかし、引数を指定できないようなのが惜しい。(ファイルパスの後ろに/cmd記述のみ試してみました。他に何かできるかは不明)
引数を別の方策で取得すれば、上記で書いたような無駄な待機処理は不要。
私としては、ロジックにより使い分けることになりそうです。
勉強になりました。
>多数のクエリーの実行を考えるとUIPATHからどのようにすべきかご教示ください。
UiPathからの実行は上を参照していただいて、Access側の処理をどう書いているか不明なので、軽く補足します。
・マクロだけでも処理を書けますが、マクロはVBA処理の入り口だけにして VBAで処理を記述するのをおすすめします。
マクロのプロシージャの実行に hoge()。
VBAの標準モジュールに public function hoge()で処理を記述。
・「多数のクエリーの実行」の途中でエラーの場合、VBAであればトランザクション処理が書けます(もちろんエラー時そのまま再実行可であれば不要)。(VBA略)
Hi @matrix99999 and @Legacy32,
To execute the query you can use like below.
The BalaReva.Access for the executing the macro.
Thank you
Balamurugan.S