ACCESS VBA レポート起動時イベントの発生する順番

レポート起動時イベントの発生する順番

ACCESSのレポートを開く先に、VBAで様々な処理を実行することが可能です。
しかし、一口にレポートを開く時、といってもACCESS内のイベント発生のタイミングは、「開く時」「読み込み時」「レコード移動時」「アクティブ時」など複数の種類があり、どのイベントがどの順番で発生するのかわかりにくくなっています。

今回は、ACCESSのレポート起動時イベントの発生する順番をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

レポート起動時イベントの順番

ACCESSのレポートにはいくつかのイベント発生タイミングのトリガーが設定されています。
レポートをデザインビューで開き、プロパティシートを確認すると、以下のようにレポートのイベント発生タイミングを設定することができます。

この中でレポートを起動する処理の中では、以下の順番でイベントが発生します。

それぞれのイベントを発生順に解説します。

開く時

レポートをプレビューまたは印刷する前に発生するイベントです。
マイクロソフトのサイトでは以下にように解説されています。

フォームに表示するレコードセットを抽出するための条件や、レポートに含める日付の範囲を入力するためのカスタムダイアログ ボックスを開くことができます。

マクロまたはイベント プロシージャに Open イベントと Load イベントのどちらを使用するかを決定しようとしている場合、大きな違いの 1 つは Open イベントを 取り消すことができるが、 Load イベントでは使用できないことです。 たとえば、フォームの Open イベントのイベント プロシージャでフォームのレコード ソースを動的に作成する場合、表示するレコードがない場合はフォームの開き方を取り消すことができます。 同様に、Unload イベントは取り消すことができますが、Close イベントは取り消すことができません。

Microsoft Ignite

読み込み時

レポートが開き、レコードが表示されるときに発生するイベントです。
マイクロソフトのサイトでは以下のように解説されています。

レポートの Load イベントが発生したときにマクロやイベントプロシージャを実行すると、コントロールに既定の設定値を指定したり、レポートのレコードの内容に応じて異なる演算データを表示することができます。

Microsoft Ignite

アクティブ時

レポートがフォーカスを受け取り、アクティブウィンドウになったときに発生するイベントです。
マイクロソフトのサイトでは以下のように解説されています。

レポートをアクティブにするには、レポートを開くか、レポートまたはコントロールを選択します。

Activate イベントは、レポートが可視に設定されているときにのみ発生します。

Microsoft Ignite

ページフォーマット時

フォーマット時イベントは、レポート全体だけではなくセクション(ヘッダーや詳細など)でも発生するイベントです。

以上、レポート起動時イベントの発生する順番をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス紹介

最後までお読みいただき、ありがとうございました。