我有一个简单的报告,其中包含基于查询的记录和图表。我的图表中没有传说的空间,因此我尝试在报告的详细信息部分中为某个字段着色,以匹配图表中该记录的颜色。我可以像使用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值,但是我无法获得条件格式来从另一个字段获取目标颜色,只是用于确定是否需要应用颜色的值。 / p>
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
Detail_Format
is the correct event to use. But you need an Else
case in your code, to reset the format for all other values.
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