MS Access Tips/Sample and VBA and Blog customize etc...

クラスで自作イベントを実装する

「レコード保存ボタン」クラスで入力チェックで、入力チェック後保存するかどうかは、パブリック変数SaveCancelを通してクラスモジュール側に渡していました。今回は、もう少しクラスらしい方法を紹介します。

クラスでは自分でイベントを作ることができます。これを利用して「保存ボタン」クラスに「更新前処理」イベントを追加してみます。

難易度:

レコード保存ボタンのクラス化のクラスモジュールに下記の※印のコードを追加します。

※1 イベントを宣言します。Public Event に続けて、関数と同じように イベント名(引数) というように記述します。イベント内でする処理は受け取る側(今回はフォームモジュール)で記述します。

※3 RaiseEventステートメントでイベントを発生させます。イベントを受け取る側(フォーム)で引数(Cancel)で値を受け取ります。

※4 Cancel が True の場合は、次の保存処理をせずに終了します。

フォームモジュール

※1 クラスをイベント付き(WithEvents)で宣言します。

※2 フォームの更新前処理に記述する代わりにこちらに同様に入力チェック等を記述できます。

謝辞 kiku30246さんからのアドバイスを参考にさせていただきました。

サンプルファイルが下記からダウンロードできます。
FrmSaveButtonClassWithEvent_07.zip (Access 2007-2010 形式 - 33kb)
FrmSaveButtonClassWithEvent.zip (Access 2002-2003 形式 - 29kb)
FrmSaveButtonClassWithEvent_2k.zip (Access 2000 形式 - 29kb)

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/174-3655ad18
該当の記事は見つかりませんでした。