|
最近私も同じことを考え、編み出した方法です。
1.まず、一覧フォームに使用しているレコードソースの「テーブル」に [カレント] と
いう「Yes/No型」のダミーフィールドを作成します。
2.次に一覧フォームの「フォーム移動時イベント」に下記のコードを設定します。
Private Sub Form_Current()
Const myTBL As String = "T_一覧テーブル" '元となるテーブル
DoCmd.SetWarnings False
'1.今カレントになっているフラグを消し、2.新しい行のカレントフラグをオンにする
DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=False WHERE カレント=True;"
DoCmd.RunSQL "UPDATE " & myTBL & " SET カレント=True WHERE " & "ID=" & id & ";"
DoCmd.SetWarnings True
Me.Repaint '移動があまりにも早いと、画面が更新されないことがあるので再描画
End Sub
(上記例では、テーブルの主キーに「id」を使っています)
これで移動に合わせ、選択されているレコードの[カレント]フィールドに常にレ点が入り
ます。
3.ハイライト表示させたい全てのテキストボックス等のコントロールの条件付き書式に、
[式] 式の内容→ [カレント]=True
と設定します。
以上でできるはずです。
お試しあれ。 (^o^)
|
|