フォーム:カレントレコードの背景色の変更 |
対象バージョン : 97, 2000, 2002, 2003
最終更新日 : 2005/04/25
(オリジナル作成日:1999/10/09)
概 要
帳票フォームで、現在フォーカスのあるレコードの背景色を変更する方法です。
実態としては、詳細セクションの背景色を変更すると全レコードの表示が変更されますので、OLE オブジェクトを利用して表示色を変えています。
サンプル MDB のダウンロード
tch_051.lzh (30,334 Bytes)
このファイルを解凍すると、次の2つのファイルが作成されます。
※Red.bmp
は無くても動作しますが、このように作成したとの意味で、ご参考として添付しました。
サンプルの説明
CRec.mdb を開くと、フォーム "F_一年戦争" が開きます。
レコードの移動とともに、背景色が赤くなります。
解 説
テーブル "一年戦争" に "数値型" の "ColorNo" というフィールドが設けてあります。テーブル "Color" に、 "数値型" の "ColorNo" というフィールドと、"OLE オブジェクト型" の "Color" という フィールドが設けてあり、これには次の2つのレコードが作成されています。
ColorNo | Color |
0 | (未登録) |
1 | オブジェクトの挿入で Red.bmp をビットマップイメージで登録 |
クエリー "Q_一年戦争" では、テーブル "一年戦争" と、"Color" とを、フィールド "ColorNo" で連結しており、このクエリーは、フォーム "F_一年戦争" の "RecordSource/レコードソース" となっています。
フォーム "F_一年戦争" の詳細セクションに、フィールド "Color" の連結オブジェクトフレームを、全く同じ大きさで配置してあります。フォームの "OnOpen/開く時" でのイベントプロシージャで、フォームの全 Recordset に対して、フィールド "ColorNo" に 0 を設定しています。
フォームの "OnCurrent/レコード移動時" でのイベントプロシージャで、Bookmark を利用して、移動前のレコードの "ColorNo" を 0 にして、移動後のレコードの "ColorNo" を 1 にしています。
補 足
改訂履歴