Access - 无法格式化单个报表字段,整个列颜色发生变化
Access - Can't format individual report fields, the entire column color changes
我有一个简单的报告,其中包含记录和基于查询的图表。我的图表中没有放置图例的空间,因此我尝试为报告的详细信息部分中的字段着色以匹配图表中该记录的颜色。我可以使用 VBA 为图表着色,但我无法在不为整个列着色的情况下单独为字段值着色。
我试过:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Me![Field1].Value = 32 Then
Me![Field1].ForeColor = vbRed
End If
End Sub
正确检测到该值,但如果 'SomeValue' 存在,则整个 Me![MyFieldName] 列变为红色。
这个问题已经让我抓狂好几天了,我准备放弃了。我能够使用 VBA 为每个目标值编写条件格式来实现我的目标,但是 Access 的最多 4 个条件格式(如果包括默认值)将该解决方案排除在外。
我考虑过使用隐藏文本框来存储每条记录的 RGB 值,但我无法获取条件格式以从另一个字段获取目标颜色,只能使用用于确定是否需要应用颜色的值.
非常感谢任何帮助。谢谢你。
Detail_Format
是要使用的正确事件。但是您的代码中需要一个 Else
案例,以重置所有其他值的格式。
Dim lColor As Long
If Me![Field1].Value = 32 Then
lColor = vbRed
' ElseIf Me![Field1].Value = 77 Then ' etc
' lColor = vbBlue
Else ' default color
lColor = vbBlack
End If
Me![Field1].ForeColor = lColor
我有一个简单的报告,其中包含记录和基于查询的图表。我的图表中没有放置图例的空间,因此我尝试为报告的详细信息部分中的字段着色以匹配图表中该记录的颜色。我可以使用 VBA 为图表着色,但我无法在不为整个列着色的情况下单独为字段值着色。
我试过:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Me![Field1].Value = 32 Then
Me![Field1].ForeColor = vbRed
End If
End Sub
正确检测到该值,但如果 'SomeValue' 存在,则整个 Me![MyFieldName] 列变为红色。
这个问题已经让我抓狂好几天了,我准备放弃了。我能够使用 VBA 为每个目标值编写条件格式来实现我的目标,但是 Access 的最多 4 个条件格式(如果包括默认值)将该解决方案排除在外。
我考虑过使用隐藏文本框来存储每条记录的 RGB 值,但我无法获取条件格式以从另一个字段获取目标颜色,只能使用用于确定是否需要应用颜色的值.
非常感谢任何帮助。谢谢你。
Detail_Format
是要使用的正确事件。但是您的代码中需要一个 Else
案例,以重置所有其他值的格式。
Dim lColor As Long
If Me![Field1].Value = 32 Then
lColor = vbRed
' ElseIf Me![Field1].Value = 77 Then ' etc
' lColor = vbBlue
Else ' default color
lColor = vbBlack
End If
Me![Field1].ForeColor = lColor