Home > 即効テクニック > AccessVBA > フォーム・レポート > ページの先頭レコードの背景を常に同じ色にする

即効テクニック

フォーム・レポート

ページの先頭レコードの背景を常に同じ色にする

(Access 2000/2002/2003)
● 概要 ●

レコードの背景を交互に色分けする場合、1ページのレコード数が奇数だった場合や、改ページされたときにも、ページの先頭レコードの背景を必ず同じ色にします。

 宣言セクションにBoolean型の変数を宣言します。この変数は、背景色の判定に使います。

Dim myFlagB As Boolean

ページヘッダーセクションのPrintイベントで、背景色の判定に使う変数を初期化します。
ページの先頭レコードを出力したときに変数の値がTrueになるようにします。

● サンプル1 ●
Private Sub ページヘッダーセクション_Print(Cancel As Integer, _
            PrintCount As Integer)
    '変数myFlagBの値を初期化します
    myFlagB = True
End Sub


● サンプル2 ●
詳細セクションのPrintイベントで、BackColorプロパティの値を指定して、背景色を判定する変数の値の真偽を入れ替えるプロシージャを記述します。
BackColorプロパティの値が交互に変更され、レコードの背景が色分けされます。


Private Sub 詳細_Print(Cancel As Integer, FormatCount As Integer)
    '変数myFlagBがTrueなら、レコードの背景を白にする
    If myFlagB = True Then
        Report_04.Section(acDetail).BackColor = RGB(255, 255, 255)
    '変数myFlagBがFalseなら、レコードの背景色を灰色にする
    Else
        Report_04.Section(acDetail).BackColor = RGB(200, 200, 200)
    End If
    'myFlagBの値を、現在TrueならFalseに、現在FalseならTrueに更新する
    myFlagB = Not myFlagB
End Sub


● 補足 ●
背景色は、Qbcolor関数や、16進数のカラーコード値で指定することもできます。