web-dev-qa-db-ja.com

VBAアクセスモジュールを実行する方法

OK、私はAccess 2003を使用していて、数日前にAccessとVBAを学び始めました。
モジュールにコードを記述しましたが、デバッガツールバーの上部にある再生ボタンを押してもエラーは発生しません。
実際にデータベースでこのコードを実行して、何かを実行する方法を教えてください。
言い換えれば、モジュールをどのように利用しますか?

私が一生懸命苦労しているので、締め切りは木曜日です。

ありがとう!

7
Shubham

まあそれはあなたがこのコードをどのように呼びたいかに依存します。

フォームのボタンクリックから呼び出しますか?フォームのボタンのプロパティで、[イベント]タブに移動し、[クリック時]項目で[イベントプロシージャ]を選択します。これにより、そのボタンのVBAコードウィンドウが開きます。次に、Module.Routineを呼び出し、ボタンをクリックするとトリガーされます。

これに似ています:

Private Sub Command1426_Click()
    mdl_ExportMorning.ExportMorning
End Sub

このボタンクリックイベントは、Module mdl_ExportMorningおよびPublic Sub ExportMorningを呼び出します。

10
Taryn

テスト目的で関数を実行するだけの場合は、Accessで Immediate Window を使用できます。

VBAエディターで_Ctrl + G_を押して開きます。

その後、次のように関数を実行できます。

  • ?YourFunction("parameter")
    (戻り値を持つ関数の場合-戻り値はイミディエイトウィンドウに表示されます)
  • _YourSub "parameter"_
    (戻り値のないサブクラス、または戻り値を気にしない関数の場合)
  • _?variable_
    (変数の値を表示するため)
10

モジュールを実行していない-たまたまモジュールに格納されているサブルーチン/関数を実行している。

スタンドアロンモジュールにコードを配置し、サブルーチン/関数の定義でスコープを指定しない場合、それらはデフォルトでパブリックになり、アプリケーション内のどこからでも呼び出すことができます。つまり、マクロ内のRunCodeを使用して、フォーム/レポートのクラスモジュールから、スタンドアロンのクラスモジュールから、または関数の場合はSQLから(いくつかの注意点があります)呼び出すことができます。

SQLに対して複雑すぎると感じたものをVBAに実装しようとした場合、SQLはコードを実行するコンテキストとして考えられます。したがって、SQLステートメント内で関数を呼び出すことができるはずです。

  SELECT MyTable.PersonID, MyTable.FirstName, MyTable.LastName, FormatAddress([Address], [City], [State], [Zip], [Country]) As Address
  FROM MyTable;

そのSQLは、アドレスのコンポーネントを引数として取り、適切にフォーマットするFormatAddress()というパブリック関数を呼び出します。これはVBA関数を必要としない可能性が高いので簡単な例ですが、ポイントは、SQLステートメント内から関数を呼び出す方法です。

サブルーチン(つまり、値を返さないコード)は、SQLステートメント内から呼び出すことはできません。

1
David-W-Fenton