2011-07-19 39 views
4

私はAccess 2003を使用しています。数日前にAccessとVBAを学習し始めました。
モジュールにコードを書きましたが、デバッガのツールバーの再生ボタンを一番上に押してもエラーはありません。
実際にデータベース上でこのコードを実行することで、何かが実行されます。
つまり、モジュールをどのように使用すればよいですか?VBAアクセスモジュールの実行方法は?

私は助けてください私は苦労しており、これの締め切りは木曜日です!

ありがとうございます!

答えて

7

このコードをどのように呼び出すかによって異なります。

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

Private Sub Command1426_Click() 
    mdl_ExportMorning.ExportMorning 
End Sub 

このボタンのクリックイベントがModule mdl_ExportMorningPublic Sub ExportMorningを呼び出します。

+0

事は、私は、フォームを使用していないです。 私はいくつかの製品の注文情報を持つデータベースを持っています。どの製品が最も一般的に一緒に販売されているかを見るために製品を相互参照する必要があります。 これはクエリを実行するには複雑すぎると思ったので、私はVBAでそれをやろうと思っていました。 私はこれに完全に間違っていますか?テーブル上のプロシージャを単に呼び出す方法はありませんか? – Shubham

+0

実行するには何かから呼び出す必要があります。私は通常、フォームを使用して、タイマーイベントまたはクリックイベントを使用して呼び出すことができます。これらの呼び出しは、Accessまたはツールバーからマクロを使用して行うこともできます。私はクエリからVBAを呼び出すことはありませんが、可能性があります、リンクが含まれて参照してください。 http://social.msdn.microsoft.com/Forums/en-NZ/accessdev/thread/498ef095-b426-4779-84bb-cbf07831ff5c – Taryn

+0

私は今、マクロで実行中のモジュールを検索し、私の答えを見つけました。大いに感謝する! – Shubham

1

モジュールを実行していません。モジュールに格納されているサブルーチンや関数を実行しています。

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

VBAでSQLには複雑すぎると思われるものを実装しようとしていた場合、SQLはコードを実行する可能性の高いコンテキストです。だから、あなただけのSQL文の中で、あなたの関数を呼び出すことができる必要があります:SQL引数のアドレスの構成要素として受け取り、それらを適切にフォーマットしFormatAddress(と呼ばれるパブリック関数)を呼び出すこと

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

。その目的のためにVBA関数を必要としないような簡単な例ですが、これはSQL文の中から関数を呼び出す方法です。

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

+0

返信ありがとうございますが、私はそれを理解しています – Shubham

9

テスト目的で機能を実行したい場合は、Immediate WindowをAccessで使用できます。

VBAエディタでCtrl + Gを押して開きます。

その後、あなたはこのようなあなたの機能を実行することができます。

  • ?YourFunction("parameter")
    から
  • YourSub "parameter"
    ((戻り値を持つ関数の戻り値は、イミディエイトウィンドウに表示されます)戻り値のないサブの場合、または戻り値を気にしない場合の関数)
  • ?variable
    (変数の値を表示する)
+0

'Strg'は途中で' USキーボードの 'Ctrl'と同じです。 – Zoot

+0

おっと...もちろん、あなたは正しいです:-)私はそれを編集しました! –

関連する問題