質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.77%

【Access】特定の条件で帳票フォームの背景色を変えたい

解決済

回答 1

投稿

  • 評価 0
  • クリップ 0
  • VIEW 6,984

score 12

前提・実現したいこと

<前提>
テーブルに入っているレコードを帳票フォームで表示している

<実現したいこと>
特定の条件に一致したレコードだけ、別の背景色にして帳票フォームで表示したい

発生している問題・エラーメッセージ

もし[フィールド名1]に"A"が入っているレコードがあった場合、

そのレコードが表示されているフォームの背景色を変えたいと思っています。

試しに下記のようにコードを書いたところ、反映されませんでした。

コードを変えようと思ったのですが、どこを変更すればよいかわからず困っております。

もしよい方法がありましたら、何卒ご教示お願いいたします。

<コード>

Private Sub Form_Load()

 Dim SQL1 As String

 SQL1 = ""
 SQL1 = "SELECT [テーブル名].[主キーのフィールド]"
 SQL1 = SQL1 & ", [テーブル名].[フィールド名1]"
 SQL1 = SQL1 & ", [テーブル名].[フィールド名2];"

 Forms![表示用のフォーム名].RecordSource = SQL1 
 Forms![表示用のフォーム名].Form.Requery

 If [表示用のフォーム名].[コントロール名1] = "A" Then
  [表示用のフォーム名].詳細.BackColor = RGB(204, 255, 204) '薄い緑色
 End If

End Sub
  • クリップを取り消します

  • 質問の評価を上げたことを取り消します

  • 質問の評価を下げたことを取り消します

回答 1

checkベストアンサー

+1

「背景色」プロパティは各レコード毎にもっているわけではないので、VBAで変更しても全レコードに反映されます。レコード毎に背景色を変更するのは無理です。

レコード毎に書式変更するには「条件付き書式」を使います。
「条件付き書式」をもっているのはテキストボックスだけですので、セクションと同じサイズのテキストボックスを最背面に配置して、条件付き書式で背景色を設定してください。


もし[フィールド名1]に"A"が入っているレコードがあった場合、
そのレコードが表示されているフォームの背景色を変えたいと思っています。

条件付き書式の設定例
イメージ説明

投稿

編集

hatena19

VBA総合1位

score 21865

  • chimi_mamire

    chimi_mamire

    2019/11/21 10:49

    条件付き書式で仕様通りに作成できました!
    ご回答ありがとうございました!

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る