dポイントプレゼントキャンペーン実施中!

チェックボックスにチェックが入っていない場合、テキストボックス内の文字色を赤に、チェックを入れたら黒に、またチェックを外したら赤に、という風にしたいです。
条件付書式で設定した場合、条件を満たしたらすぐには反映されず、一旦別のレコードに移動して戻ってくると反映されています。
VBAのコードで

Private Sub 処理_AfterUpdate()
If チェックボックス = 0 Then
'文字色変更処理
Else
'文字色変更処理
End If
End Sub

のようにすれば出来るのではないかと思うのですが、
文字色変更のコードがわかりません。
どなたか教えてください。

A 回答 (5件)

Access2003でも試しました。


う~ん、条件付き書式でいけますね。。。

テキストボックスの条件付き書式で、
[式][[チェックボックス]=no][文字色赤]
でできました。
    • good
    • 0
この回答へのお礼

教えて頂いた通りにやってもダメだったので、
下記コードを書き加えました。

Private Sub チェックボックス_AfterUpdate()
テキストボックス.requery
End Sub

ありがとうございました。

お礼日時:2005/03/15 17:18

>なぜかチェックの付け外しだけでは書式変更されないのですが・・・



コントロールの条件付書式です。条件式に誤りがあるのでは?
例えば、 コントロール名が

・CHEKBOX1
・TEXTBOX1

の2つのコントロールがフォームに配置されていたとして、CHECKBOX1の値でTEXTBOXの文字色を変更するには、条件付書式を次のようにデザインビューで設定します。

1. TEXTBOX1を選択
2. [書式]-[条件付書式]クリック
3. 条件1の設定
  [式が] 式: [CHECKBOX1]=No 書式:赤字
4. [OK]クリック


3.の式: [CHECKBOX1]=No は [CHECKBOX1]=False でもOKだと思います。

コントロール名を[]でくくってみたら、どうでしょうか?
    • good
    • 0
この回答へのお礼

教えて頂いた通りにやってもダメだったので、
下記コードを書き加えました。

Private Sub チェックボックス_AfterUpdate()
テキストボックス.requery
End Sub

ありがとうございました。

お礼日時:2005/03/15 17:17

ちなみにAccessはどのバージョンを使っていますか?


Access2002ではレコードを条件付き書式を使えばレコードを移動しなくても書式が変更されますが・・・

この回答への補足

バージョンは2003です。
なぜかチェックの付け外しだけでは書式変更されないのですが・・・
うーん・・・

補足日時:2005/03/15 14:21
    • good
    • 0

ごめんなさい、逆でした(^ ^;



Private Sub チェックボックス_AfterUpdate()
lngRed = RGB(255, 0, 0) ' 赤
lngBlack = RGB(0, 0, 0) ' 黒
If チェックボックス.Value = 0 Then
テキストボックス.ForeColor = lngRed
Else
テキストボックス.ForeColor = lngBlack
End If
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます。

そして大変な事に気付きました。
この方法だと全レコードが同じ色になってしまうんですね・・・

レコード毎の色の値は持っていないんでしょうか。

お礼日時:2005/03/15 13:01

Private Sub チェックボックス_AfterUpdate()


lngRed = RGB(255, 0, 0) ' 赤
lngBlack = RGB(0, 0, 0) ' 黒
If チェックボックス.Value = 0 Then
テキストボックス.ForeColor = lngBlack
Else
テキストボックス.ForeColor = lngRed
End If
End Sub

ではどうでしょう?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A