![在 MSAccess 表单中,使用连续表单,如何通过数据分组获取交替行颜色?](https://linux22.com/image/1544135/%E5%9C%A8%20MSAccess%20%E8%A1%A8%E5%8D%95%E4%B8%AD%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%BF%9E%E7%BB%AD%E8%A1%A8%E5%8D%95%EF%BC%8C%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E6%95%B0%E6%8D%AE%E5%88%86%E7%BB%84%E8%8E%B7%E5%8F%96%E4%BA%A4%E6%9B%BF%E8%A1%8C%E9%A2%9C%E8%89%B2%EF%BC%9F.png)
当我在 MSAccess 表单中使用连续表单时,它会自动将备用行颜色应用于每隔一行。
我希望为数据行组设置备用行颜色。
有些组可能只有一行,但其他组则有多个。
我在表单中确实有一列,其中包含一个整数,该整数随每个组递增。
有没有办法让 Access 识别表单中的分组,然后在那里应用交替行颜色而不是简单地每隔一行应用?
答案1
Access 无法在 UI 中识别表单中的分组。(但在报告中可以)
但是,即使没有 UI“分组”,详细信息部分中也有一个事件可以提供适当的格式化挂钩。
由于组有一个整数索引,并且我们想按组交替,因此只需检查偶数/奇数组并设置背景颜色就很容易了。
我们需要强制“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
(请注意,事件是屏幕绘制,而不仅仅是生成一次连续表单。因此,在滚动和使用表单时,每行都会调用此事件任意次。这意味着关键是要有像索引列检查这样始终相同的内容。)