it-swarm-ja.com

MS Accessフォームで、連続フォームを使用して、データグループ化によって代替の行の色を取得するにはどうすればよいですか?

MSAccessフォームで連続フォームを使用すると、1行おきに代替行の色が自動的に適用されます。
データの行のグループに別の行の色を使用したいと思います。
一部のグループには1つの行しかない場合がありますが、他のグループには複数の行があります。
グループごとに増分する整数の形式の列があります。

Accessにフォーム内のグループ化を認識させ、他のすべての行ではなく、そこに代替行の色を適用する方法はありますか?

1
Mike M

Accessには、UIのフォームのグループ化を認識する方法がありません。 (レポートで行います)

ただし、UIの「グループ化」がなくても、フォーマット用の適切なフックを提供する詳細セクションのイベントがあります。

enter image description here

グループには整数のインデックスがあり、グループごとに入れ替えたいので、偶数/奇数のグループをチェックして背景色を設定するだけで簡単です。
「Backcolor」と「AlternateBackColor」の両方を強制する必要があります。したがって、グループインデックスがIndexColumnBoxという名前のテキストボックスに配置されているとすると、次のようになります。

Private Sub Detail_Paint()

    If Me.IndexColumnBox.Value Mod 2 = 0 Then
        Detail.BackColor = &HDDDDDD
        Detail.AlternateBackColor = &HDDDDDD

    Else
        Detail.BackColor = &HFFFFFF
        Detail.AlternateBackColor = &HFFFFFF

    End If

End Sub

(イベントは画面ペイントであり、連続フォームを1回生成するだけではないことに注意してください。したがって、このイベントは、フォームがスクロールされて使用されるときに、行ごとに何度も呼び出されます。これは、インデックス列のようなものを持つことが重要であることを意味します。常に同じであることを確認してください。)

1
Mike M