データベース管理に MS Access を使用しています。さまざまなレポートを生成するいくつかのリンクされたテーブルがあります。私はすでにstackoverflowで同様の質問を見つけており、この問題について調査を行いました。条件に応じて行をペイントしようとしています (Duration <20 ペイント ベージュ、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
レポートで上記の条件に従って行をペイントしようとしています。このコードでは、1色しか得られません..