Access のデータ マクロを使用すると、データの追加、更新、削除など、テーブルで発生するイベントにロジックを追加できます。 これらは、Microsoft SQL Server の「トリガー」に似ています。 この記事では、データ マクロを作成およびデバッグする方法について説明します。
この記事の内容
データ マクロについて
データ マクロは、データシート ビューでテーブルを表示している間、[ テーブル] タブから管理され、ナビゲーション ウィンドウの [マクロ ] には表示されません。 特に、データ マクロを使用して、テーブル内のデータの正確性を検証し、保証することができます。 データ マクロには主に 2 種類あります。テーブル イベントによってトリガーされるもの ("イベント駆動型" データ マクロとも呼ばれる) と、名前で呼び出された応答で実行されるもの ("名前付き" データ マクロとも呼ばれます) です。
イベントドリブン データ マクロを作成する
テーブル イベントは、テーブル内のデータを追加、更新、または削除するたびに発生します。 これら 3 つのイベントのいずれかの直後、または削除または変更イベントの直前に実行されるようにデータ マクロをプログラムできます。 テーブル イベントにデータ マクロを追加するには、次の手順に従います。
ナビゲーション ウィンドウで、データ マクロを追加するテーブルをダブルクリックします。
[ テーブル] タブの [ Before Events ] グループまたは [After Events ] グループで、マクロを追加するイベントをクリックします。 たとえば、テーブルからレコードを削除した後で実行するデータ マクロを作成するには、[ 削除後] をクリックします。
注
イベントに既にマクロが関連付けられている場合は、そのアイコンがリボン上で強調表示されます。
[マクロ ビルダー] が開きます。 このイベントに対してマクロが既に作成されている場合は、既存のマクロが表示されます。
マクロで実行するアクションを追加します。
マクロを保存して閉じます。
マクロの作成の詳細については、「 ユーザー インターフェイス (UI) マクロを作成する」の記事を参照してください。
名前付きデータ マクロを作成する
名前付きまたは "スタンドアロン" データ マクロは特定のテーブルに関連付けられますが、特定のイベントとは関連付けられません。 名前付きデータ マクロは、他の任意のデータ マクロまたは標準マクロから呼び出すことができます。
- ナビゲーション ウィンドウで、データ マクロを追加するテーブルをダブルクリックします。
- [ 表] タブの [ 名前付きマクロ ] グループで [ 名前付きマクロ] をクリックし、[ 名前付きマクロの作成] をクリックします。
マクロ ビルダーが開き、アクションの追加を開始できます。
マクロの作成の詳細については、「 ユーザー インターフェイス (UI) マクロを作成する」の記事を参照してください。
パラメーターについて
パラメーターを使用すると、名前付きデータ マクロに値を渡して、条件付きステートメントやその他の計算で使用できます。 また、オブジェクト参照を標準マクロからデータ マクロに渡すこともできます。
注
パラメーターは、イベント ドライブのデータ マクロでは使用できません。
データ マクロにパラメーターを追加するには:
- マクロの上部にある [ パラメーターの作成] をクリックします。
- [ 名前 ] ボックスに、パラメーターの一意の名前を入力します。 これは、式でパラメーターを参照するために使用する名前です。
- 必要に応じて、[ 説明] ボックスにパラメーターの説明を入力します。 後でこのパラメーターを使用すると、ここで入力した説明テキストがヒントに表示されるので、説明を入力することをお勧めします。 これは、パラメーターの目的を覚えておくのに役立ちます。
名前付きデータ マクロを別のマクロから実行するには、 RunDataMacro アクションを使用します。 このアクションには、必要な値を指定できるように、作成した各パラメーターにボックスが用意されています。
データ マクロを管理する
データマクロは、ナビゲーション ウィンドウの [ マクロ] の下に表示されません。 データ マクロを作成、編集、名前変更、および削除するには、テーブル データシート ビューまたはテーブル デザイン ビューでリボン コマンドを使用する必要があります。
イベントドリブン データ マクロの編集
ナビゲーション ウィンドウで、編集するデータ マクロを含むテーブルをダブルクリックします。
[ テーブル] タブの [ Before Events ] グループまたは [ After Events (イベントの後 ] グループ) で、編集するマクロのイベントをクリックします。 たとえば、テーブルからレコードを削除した後に実行されるデータ マクロを編集するには、[ 削除後] をクリックします。
注
イベントにマクロが関連付けられていない場合、そのアイコンはメニュー上で強調表示されません。
マクロ ビルダーが開き、マクロの編集を開始できます。
名前付きデータ マクロを編集する
- ナビゲーション ウィンドウで、任意のテーブルをダブルクリックして、データシート ビューで開きます。
- [ 表 ] タブの [名前付きマクロ ] グループで [ 名前付きマクロ] をクリックし、[ 名前付きマクロの編集] をポイントします。
- サブメニューで、編集するデータ マクロをクリックします。
マクロ ビルダーが開き、マクロの編集を開始できます。
名前付きデータ マクロの名前を変更する
- ナビゲーション ウィンドウで、任意のテーブルをダブルクリックして、データシート ビューで開きます。
- [ 表] タブの [ 名前付きマクロ ] グループで [ 名前付きマクロ] をクリックし、[ マクロの名前の変更と削除] をクリックします。
- [ データ マクロの管理 ] ダイアログ ボックスで、名前を変更するデータ マクロの横にある [ 名前の変更 ] をクリックします。
Access で、現在のマクロ名が選択されます。 - 新しい名前を入力するか、既存の名前を編集して、Enter キーを押します。
データ マクロを削除する
次の手順を使用して、名前付きデータ マクロまたはイベント駆動型データ マクロを削除します。
- ナビゲーション ウィンドウで、任意のテーブルをダブルクリックして、データシート ビューで開きます。
- [ 表] タブの [ 名前付きマクロ ] グループで [ 名前付きマクロ] をクリックし、[ マクロの名前の変更と削除] をクリックします。
- [ データ マクロの管理 ] ダイアログ ボックスで、名前を変更するデータ マクロの横にある [削除 ] をクリックします。
注
イベント駆動型マクロは、そのすべてのアクションを削除して削除することもできます。
デバッグ データ マクロ
シングル ステップ コマンドやメッセージボックス マクロ アクションなどの一部の一般的なマクロ デバッグ ツールは、データ マクロでは使用できません。 ただし、データ マクロで問題が発生している場合は、アプリケーション ログ テーブルを OnError、RaiseError、および LogEvent マクロ アクションと組み合わせて使用して、データ マクロ エラーを見つけることができます。
アプリケーション ログ テーブルを表示する
アプリケーション ログ テーブルは、既定ではナビゲーション ウィンドウに表示されないシステム テーブル (名前が付けられた USysApplicationLog) です。 データ マクロでエラーが発生した場合は、アプリケーション ログ テーブルの情報を確認することで、発生したことがわかる場合があります。
次の手順に従って、アプリケーション ログ テーブルを表示します。
[ファイル] をクリックして Microsoft Backstage ビューを開きます。
[ 情報 ] タブで、[ アプリケーション ログ テーブルの表示] をクリックします。
注
[ View Application Log Table ] ボタンが表示されない場合は、このデータベースに対してアプリケーション ログ テーブルがまだ作成されていないことを意味します。 イベントが記録されると、ボタンが [ 情報 ] タブに表示されます。
LogEvent アクションまたは RaiseError アクションを使用して、アプリケーション ログ テーブルに行を作成し、OnError アクションを使用して、Access のエラーへの反応を制御できます。