【问题标题】:Format 'Detail' background of report, based on content of table field?根据表格字段的内容格式化报告的“详细信息”背景?
【发布时间】:2018-09-03 11:07:45
【问题描述】:

我正在尝试为报告上记录的详细信息部分的背景着色,不同的颜色取决于记录链接到的人。这是我到目前为止所得到的,但它不起作用。 Access 说“找不到字段‘person’”:

Private Sub Detail_Format()

Select Case Me!Color
    Case "Red"
        Me!Detail.BackColor = vbRed
    Case "Blue"
        Me!Detail.BackColor = vbBlue
    Case "Green"
        Me.Detail.BackColor = vbGreen
    Case "Yellow"
        Me.Detail.BackColor = vbYellow
End Select

End Sub

由于页面上有几条记录,我试图获取它,因此页面上的所有“红色”记录都有红色背景,所有“蓝色”记录都有蓝色背景,等等。所以页面报告看起来像:

红色 蓝色的 红色的 绿 黄色的 黄色的 蓝色

以此类推,每个人都有不同的记录分配给该颜色的人。

报告有各种字段(姓名、年龄、职位、备注等),但“颜色”字段与其他字段一起在表中,并且不用于报告本身,只有表中的其他字段可用。

那么,是否可以根据报表本身未使用的记录字段对报表进行颜色编码?

【问题讨论】:

    标签: vba ms-access format case conditional-formatting


    【解决方案1】:

    我很确定 Color 是一个保留字,这可能会混淆问题。

    除此之外,在与表单不同的报表中,该字段必须在报表数据中,并且即使隐藏也可以在报表中使用。我会在报表底层查询中给它一个别名 txtColor 并将其放在隐藏控件的详细信息部分中。

    然后您应该能够在详细格式事件中引用它。

    【讨论】:

    • 几乎做到了!我打破了“详细信息”部分,并将一些字段放在“详细信息标题”部分中,这样看起来不那么混乱 - 并复制了着色代码来处理“Detail.BackColor”和“DetailHeader.BackColor”。但由于某种原因,DetailHeader 的颜色与 previous 记录相同,而不是它所属的记录。
    • 除此之外,它工作得很好,谢谢!但是关于如何解决这个问题的任何想法?
    • 你是把颜色字段放在detail header还是detail中?如果只是细节,我认为标题不会“看到”它。
    • 最后一条评论做到了,非常感谢!它完美地工作:)
    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多