2013-08-26 126 views
-1

我正在使用MS Access进行数据库管理。我有看到的链接表生成不同的报告。我已经在stackoverflow上发现了一个类似的问题,并在这个问题上做了我的研究。我试图根据条件绘制行(持续时间< 20 Paint米色,2060红色)根据条件更改行颜色

我正在使用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 

同样方法,我想根据报告上述条件作画行。使用此代码,我只获取一种颜色..

+0

你的问题到底是什么?什么可行,什么不行? –

+0

我试图根据报告中提到的情况绘制行。有了这段代码,我只能得到一种颜色。 – Cuta

回答

2

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

然而,有一种方法可以使用条件格式对不同标准的行着色。

+0

当你谈论条件格式时,我应该尝试使用宏吗? – Cuta

+0

不,实际上您可以在该行中选择多个文本框(在设计视图中)。单击菜单,如下所示:表单设计工具>格式>条件格式。在访问2007年,它只限于3个条件,但你可以做更多,如果你有2010年。 – Mudasser

+0

好找到一种方法,现在唯一的问题是改变持续时间从HH:MM:SS格式到分钟数。 – Cuta