プロが教える店舗&オフィスのセキュリティ対策術

MSアクセスのマクロ/モジュールを.batバッチファイル、もしくは.vbsのVBスクリプトでキックさせたいと思っています。

こういった方法は可能でしょうか?ぜひ教えて下さい、よろしくお願いします。

A 回答 (4件)

Dim AcApp



Set AcApp = CreateObject("Access.Application")

AcApp.visible = true
AcApp.OpenCurrentDatabase "c:\temp\test.mdb" 'ファイル名
AcApp.DoCmd.RunMacro "マクロ1" 'マクロ名

これでどうでしょう。
    • good
    • 1
この回答へのお礼

皆様ありがとうございます。
こちらでうまく動作しました!!ありがとうございました。

こちらで皆様へのお礼に代えさせてください

お礼日時:2006/11/02 12:12

#3です。


モジュールを忘れてました。
モジュールでPublic宣言されたSub又はFunctionを呼び出すのは

AcApp.Run "test","引数1",123 ’関数名、引数・・・

こんな感じ。引数も渡せます。
書き忘れてましたがVBScript(.vbs)です。
    • good
    • 0

> やはり、


> 外部スクリプトから
> MSアクセス(マクロorVBAコード)を実行したいです。

*.mdb には 2つの側面があります。
A) データ、クエリ、フォーム、レポート、マクロ、VBAコードが入っている「ユーザーが手作業で操作する機能を有するデータベース アプリケーション」という面。
B) データ程度しか入っていない「外部からコントロールされるためのデータベース」

今回の対象にしているデータベースは A に属するのかもしれませんが、「やろうとしていること」は B です。
ですので外部から、外部の機能を使ってコントロールする方法を採用するのが良いと思います。
ただし、マクロによってフォームやレポートを操作したいというのなら別ですが・・・

機能が増大すればするほど、本流のアプリケーション(ユーザーが画面で操作するためのもの)とサブセット機能は(ある特定の目的のために特定のデータを抜き出したり、横から介入するような機能)はそれぞれ別のツールとして開発する事をお勧めいたします。
なぜかというと、外部からコントロールされるだけの仕組みが *.mdb の中に置かれていると、後々のメンテナンスで後任者が困るからです。
「これって何のためにあるの? mdb の中からは使われてないよね」
って。
    • good
    • 0

外部から Access.exe ならびに *.mdb を起動して *.mdb 内にあるマクロや VBA コードを実行する。


ってこと?(それともマクロだけ?)
まぁいずれにせよあまりシンプルじゃないですよね。

マクロの中でやろうとしていることが何なのかにもよりますが、単にデータを更新したり、何らかの形(Excel やテキストファイルかな)で抽出するっていうのなら、Access のマクロで定義せず、VBScript で ADO を使ってデータを処理し、COM を使って Excel を操作したほうが楽かと。
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。しかし、ごめんなさい。

やはり、
外部スクリプトから
MSアクセス(マクロorVBAコード)を実行したいです。

お礼日時:2006/10/31 13:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A