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

アクセスで、ファイルを開いたと同時に、サブプロシージャーを実行するには?

AutoExecというマクロを作ったのですが、どういう条件を指定すればいいのかわかりません。
標準モジュールには、testというプロシージャーがあります。

アクセスファイルを開いたと同時に、testを実行させたい場合は、
「マクロの実行」を選べばいいのでしょうか?

実行回数や繰り返し条件式に何を入れればいいのでしょうか?

「ファイルを開いたと同時に、サブプロシージ」の質問画像

A 回答 (4件)

業務時間外になってからでは間に合いませんでしたが・・・(汗)



既にm3_makiさんから回答がある通り、『プロシージャの実行』
アクションではFunctionプロシージャしか実行できないので、

Public Sub test()
  '処理内容の記述
  '・・・
End Sub

となっている場合は、

Public Function test()
  '処理内容の記述
  '・・・
End Function

と修正した上で、マクロで「test()」と指定して下さい。
(なお、「Public」は省略可能ですが、そのモジュール以外
 から呼出可能なことを明示するために、つけておいた方が
 無難と思います)


また、同名のSub/Functionが、他のモジュールにも存在する
場合は、マクロの『プロシージャ名』には「test()」ではなく、
「モジュール名.test()」とする必要がありますので、併せて参考まで。
(モジュール名が「Module1」の場合は、「Module1.test()」にする、と)

一応、過去のQ&Aも参考まで:
http://oshiete.goo.ne.jp/qa/4995622.html
※添付画像が削除されました。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/05/01 20:35

「AutoExec」 マクロを作成し


「プロシージャの実行」アクション で test() を実行します。

ただし、「プロシージャの実行」 で 実行できるのは
ファンクションプロシージャ のみです。

> ファイルを開いたと同時に、サブプロシージャーを実行

ということなら

test を ファンクションプロシージャ に変更するか、
あるいは
test を 呼び出すだけの ファンクションプロシージャ test1 を作成し
「AutoExec」 では、 test1() を実行するようにしてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/05/01 20:35

データベースを開くときにアクションを実行する(AutoExecマクロ)


http://www.moug.net/tech/acopr/0010001.html
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/05/01 20:35

> 標準モジュールには、testというプロシージャーがあります。



標準モジュールに記述したプロシージャをマクロから実行する場合は、
『マクロの実行』アクションではなく『プロシージャの実行』アクションを
指定します。

手元のAccess2007で確認した限りでは、引数は「プロシージャ名」
のみと思いますので、そこに「test()」と指定してやればOkです。
(testプロシージャに引数がある場合は、上記の「()」の中に指定して
 やります。引数がない場合も、「()」だけはつけてやってください)

※少なくともAccess2007までは、ここでのプロシージャの引数には
 「vbOk」のような、VBAなどで定義された定数は指定できません
 でしたので、Access2010以降も同様の可能性が高いと思います。
 その場合は、ここには「1」などの値を直接指定してやればOkです。
 (定数の実際の値は、Ctrl+Gキーの同時押しなどで開く
 『イミディエイト ウィンドウ』で、「?vbOK」と入力してEnterキーを
 押してやると、次の行に表示されるので、そこで確認できます)


以下のQ&Aで、質問者の方が添付された画像も参考に:
(ドロップダウンリストの最上位に「プロシージャの実行」があります)
http://oshiete.goo.ne.jp/qa/8011562.html
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/05/01 20:35

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