代码之家  ›  专栏  ›  技术社区  ›  user6781556

访问-无法设置单个报表字段的格式,整个列的颜色会更改

  •  1
  • user6781556  · 技术社区  · 8 年前

    我有一个简单的报告,其中包含记录和基于查询的图表。我的图表中没有足够的空间放置图例,所以我正在尝试为报表详细信息部分的字段着色,以匹配图表中该记录的颜色。我可以像使用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
    

    该值被正确检测,但整个Me!如果存在“SomeValue”,[MyFieldName]的列将变为红色。

    Entire column's color changes

    这个问题已经让我发疯好几天了,我要放弃了。我能够使用VBA为每个目标值编写条件格式来实现我的目标,但Access最多4个条件格式(如果包含默认值)将该解决方案计算在内。

    我考虑过使用隐藏文本框来存储每条记录的RGB值,但我无法通过条件格式从另一个字段中获取目标颜色,只能通过值来确定是否需要应用颜色。

    任何帮助都是非常感激的。非常感谢。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Andre    8 年前

    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