イベント
イベント タブでは、フォーム内で発生するイベントにマクロを割り当てることができます。
イベントとマクロを関連付けるには、まずイベントの発生時に実行する必要のあるコマンドをすべて含めたマクロを記述します。次に、対応するイベントにこのマクロを割り当てます。そのためには、対応するイベントの横にある「...」ボタンをクリックします。これによって、マクロの割り当て ダイアログが開くので、マクロを選択することができます。
以下のアクションは、ユーザーが自由に構成できます。すなわち、ユーザー独自のダイアログを使用して、アクションを表示できます。
-
エラーメッセージの表示、
-
(レコードの)削除処理の確認、
-
パラメーターのクエリー、
-
およびレコードを保存する際の入力のチェック
例えば、データレコードの削除時に、「本当に顧客 xyz を削除しますか?」などのメッセージを表示する「削除確認」要求を出すことができます。
イベントダイアログで示されるイベントは直接編集することができません。Del キーを押してリストから削除することはできます。
次に、マクロに関連付けることができるフォーム内の全イベントとその説明を示します:
アンロードする前
アンロードする前 イベントは、フォームが読み込み解除される (つまり、そのデータソースから切断される) 前に発生します。
アンロードする時
アンロードする時 イベントは、フォームが読み込み解除された (つまり、そのデータソースから切断された) 直後に発生します。
エラーが生じた場合
エラー発生時 イベントは、データソースへのアクセス時にエラーが発生した場合にアクティブになります。このイベントは、フォーム、リストボックス、およびコンボボックスに適用されます。
サブミットする前
サブミットする前 イベントは、フォームデータが送信される前に発生します。
パラメーターで入れる
パラメーターで入れる イベントは、読み込むフォームに、入力する必要があるパラメーターがある場合に発生します。たとえば、フォームのデータソースとしては、次のような SQL コマンドを使用できます。
SELECT * FROM address WHERE name=:name
:name はここでは読み込むときに時に記述が必要なパラメーターです。このパラメータはそれが可能であれば上位フォームから自動的に記述されます。パラメーターが記述されないときに、このイベントが発生してリンクされているマクロがこのパラメーターを記述します。
レコードのアクション実行前
レコードのアクション実行前 イベントは、現在のレコードが変更される前に発生します。たとえば、リンクされたマクロはダイアログを開いて、確認を要求できます。
レコードのアクション実行後
レコードのアクション実行後 イベントは、現在のレコードが変更された直後に発生します。
レコード置換前
レコード置換前 イベントは、現在のレコードポインターが変更される前に発生します。たとえば、リンクされたマクロは FALSE を返すと、このアクションを阻止できます。
レコード置換後
レコード置換後 イベントは、現在のレコードポインターが変更された直後に発生します。
再ロードする前
再ロードする前 イベントは、フォームが再読み込みされる前に発生します。この時点で、データの内容はまだ更新されていません。
再読み込み時
再読み込み時 イベントは、フォームが再読み込みされた直後に発生します。この時点で、データの内容はすでに更新されています。
削除の確認時
削除の確認時 イベントは、データがフォームから削除された直後に発生します。たとえば、リンクされたマクロはダイアログを開いて、確認を要求できます。
更新する前
更新する前 イベントは、ユーザーが変更したコントロールの内容がデータソースに書き込まれる前に発生します。たとえば、リンクされたマクロは "FALSE" を返すことでこのアクションを阻止できます。
更新した後
更新した後 イベントは、ユーザーが変更したコントロールの内容がデータソースに書き込まれた後に発生します。
元に戻す前
元に戻す前 イベントは、フォームがリセットされる前に発生します。たとえば、リンクされたマクロは FALSE を返すと、このアクションを阻止できます。
以下の条件の1つを満たしていれば、フォームをリセットします。
-
ユーザーが、リセットボタンとして定義されている (HTML)ボタンを押す
-
データソースに関連付けられているフォーム内で、新しい空白のレコードを作成します。例えば、最後のレコードでボタン 次のレコード を押した場合などが考えられます。
元に戻した後
元に戻した後 イベントは、フォームがリセットされた後に発生します。
読み込む時
読み込む時 イベントは、フォームが読み込まれた直後に発生します。