さまよう大アリクイ

横浜市に住む。ホームページを作っていたりするが、最近滞り気味。

OpenOfficeのプログラミング:Baseのフォームのイベント

Baseのフォームやコントロールのイベントに対して、マクロを設定できます。どのイベントがいつ発生するのかわからないと、マクロを作りようがないので、確認して見ました。確認方法は単純に、使えそうな各イベントに対して、Msgboxだけのマクロを設定するだけです。
操作発生するイベント
フォームを開く・フォームの「レコード置換前」イベント ・フォームの「レコード置換後」イベント
次のレコードへ進む・フォームの「レコード置換前」イベント  (表示内容が変更される) ・フォームの「レコード置換後」イベント
フィールド選択・コントロールの「フォーカスを得た時」イベント
フィールド変更せずに、 他のフィールドをクリック・コントロールの「フォーカスを失った時」イベント
フィールドに文字入力・コントロールの「テキストを変更した時」イベント ※1文字入力毎に発生する
フィールド変更後、 他のフィールドをクリック・コントロールの「更新する前」イベント ・コントロールの「更新した後」イベント ※なぜかフォーカスを失った時イベントが発生しない
なお、"フォーカスを得た時"とかのマクロでMsgboxを動かすのは危険です。 マクロが無限ループになり、止められなくなります(笑)。 値に応じて、フォームに入力制限をかけたりする場合、フォームの「レコード置換後」イベントと、コントロールの「更新した後」イベントにマクロをしかけるのがよさそうです。