【问题标题】:Changing Row Colour according to condition根据条件更改行颜色
【发布时间】:2013-08-28 14:36:40
【问题描述】:

我正在使用 MS Access 进行数据库管理。我有几个链接表产生不同的报告。我已经在 stackoverflow 上找到了一个类似的问题,并对此问题进行了研究。我正在尝试根据条件绘制行(持续时间

我正在使用 VBasic。这是我的代码。

请告诉我你的想法。非常感谢您的帮助!

Sub ChangeBackType()

    Me.Date.BackStyle = 1
    Me.Cell.BackStyle = 1
    Me.Maintenance_Category.BackStyle = 1
    Me.Duration.BackStyle = 1
    Me.Line_Description.BackStyle = 1
    Me.Machine_Description.BackStyle = 1
    Me.Station_Number.BackStyle = 1
    Me.Fault_Description.BackStyle = 1
    Me.GM.BackStyle = 1
    Me.Remarks.BackStyle = 1
    Me.Intervention.BackStyle = 1
    Me.Technician_Name.BackStyle = 1
    Me.Shop_Floor.BackStyle = 1

End Sub

 Sub Paint_Rows_Red()

'其他颜色的方法相同

    Me.Date.BackColor = RGB(255, 29, 29)
    Me.Cell.BackColor = RGB(255, 29, 29)
    Me.Maintenance_Category.BackColor = RGB(255, 29, 29)
    Me.Duration.BackColor = RGB(255, 29, 29)
    Me.Line_Description.BackColor = RGB(255, 29, 29)
    Me.Machine_Description.BackColor = RGB(255, 29, 29)
    Me.Station_Number.BackColor = RGB(255, 29, 29)
    Me.Fault_Description.BackColor = RGB(255, 29, 29)
    Me.Intervention.BackColor = RGB(255, 29, 29)
    Me.GM.BackColor = RGB(255, 29, 29)
    Me.Remarks.BackColor = RGB(255, 29, 29)
    Me.Technician_Name.BackColor = RGB(255, 29, 29)
    Me.Shop_Floor.BackColor = RGB(255, 29, 29)

End Sub

    Private Sub Report_Load()


    ChangeBackType
     Dim Test As String

     Test = TestString2

     TestString2 = Me!Duration.Value
     TestString2 = FormatDateTime(TestString2, vbShortTime)

     If TestString2 <= CDate("00:20") Then

        Paint_Rows_Beige

     ElseIf TestString2 > CDate("00:20") And TestString2 < CDate("00:60") Then

        Paint_Rows_Orange

     ElseIf TestString2 >= CDate("00:60") Then

        Paint_Rows_Red

     End If

我正在尝试根据上述报告中的条件绘制行。使用此代码,我只能获得一种颜色..

【问题讨论】:

  • 您的问题到底是什么?哪些有效,哪些无效?
  • 我正在尝试根据上述报告中的条件绘制行。使用此代码,我只能获得一种颜色..

标签: database ms-access ms-access-2007 vba


【解决方案1】:

当您打开包含多行的报表/表单时,您使用的代码将仅适用于出现在数据中的第一行。所以简而言之,您的代码将无法正常工作。

但是,有一种方法可以使用条件格式为不同标准的行着色。

【讨论】:

  • 当你谈到条件格式时,我应该尝试使用宏吗?
  • 不,实际上您可以在行中选择多个文本框(在设计视图中)。单击如下菜单:表单设计工具 > 格式 > 条件格式。在2007年的访问中,它仅限于3个条件,但如果你有2010年,你可以做得更多。
  • OK 找到了解决方法,现在唯一的问题是将持续时间从 HH:MM:SS 格式更改为分钟数。
  • 您可以在自己的报告中插入一个新字段并让它使用功能 minute([your_field_with_duration_time])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2011-04-23
  • 2021-01-09
  • 2013-07-22
  • 2021-03-28
  • 1970-01-01
相关资源
最近更新 更多