MS ACCESSでのクエリー実行

UIPATHからMS ACCESSで作成したクエリー実行を考えています。
数本でしたらUIPATHでクエリーを選択して実行することを以前行ったことがあります。

多数のクエリーの実行を考えるとUIPATHからどのようにすべきかご教示ください。
あるいは、BalaReva access Activitiesをインストールしてaccess マクロで対応した方がよいでしょうか。

よろしくお願いいたします。

どうやるのがBestなのかまだ吟味してないですが、今の所以下のように組み込んでます。

・プロセスを開始アクティビティで *.accdb起動。/xで実行マクロ指定。/cmdで引数指定(エクスポートするファイル名等)
(Access起動が見えてしまうけど気にしない)
・別プロセスで実行することになるので、ファイルがエクスポートされるまでUiPath側で待機。
複数ファイルのエクスポートがあっても、最後に出すファイルのみ監視で可。
(Accessがエラー停止する可能性もあるので、待機時間に制限をもたせること。超えたら TimeoutExceptionを発動)
・エクスポートされたファイルをUiPathで読み込んで処理継続。

複数のシートを読み込んで連結や集計、項目選択などが多いときは Accessが楽なので結構使ってます。
AutoExecではなく /xで実行マクロが指定できるので、1つのaccdbに複数マクロ作れるのも好都合です。

1 Like

BalaReva access Activitiesの Execute Macro試してみました。
Accessの実行終了を待機してくれるのがありがたい。
しかし、引数を指定できないようなのが惜しい。(ファイルパスの後ろに/cmd記述のみ試してみました。他に何かできるかは不明)
引数を別の方策で取得すれば、上記で書いたような無駄な待機処理は不要。
私としては、ロジックにより使い分けることになりそうです。

勉強になりました。

1 Like

>多数のクエリーの実行を考えるとUIPATHからどのようにすべきかご教示ください。

UiPathからの実行は上を参照していただいて、Access側の処理をどう書いているか不明なので、軽く補足します。
・マクロだけでも処理を書けますが、マクロはVBA処理の入り口だけにして VBAで処理を記述するのをおすすめします。
マクロのプロシージャの実行に hoge()。
VBAの標準モジュールに public function hoge()で処理を記述。
・「多数のクエリーの実行」の途中でエラーの場合、VBAであればトランザクション処理が書けます(もちろんエラー時そのまま再実行可であれば不要)。(VBA略)

1 Like

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

1 Like