2

レポートに「S」が入力されている場合、レポートのフィールドを白の太字フォントで赤で強調表示しようとしています。これにより、フィールド内のすべてのレコードが赤くなり続けます。助けてください!

Private Sub Report_Activate()
If Me![PULL STATUS] = "S" Then

Me![PULL STATUS].BackColor = vbRed
Me![PULL STATUS].FontBold = True
Me![PULL STATUS].ForeColor = vbWhite

End If
End Sub
4

2 に答える 2

1

このコードは、レポートの詳細セクションのOn Formatイベントに含まれている必要があります 。、、を設定すると、再度変更されるまでそのままです。BackColorFontBoldForeColor

したがって、必要なのは、真でない場合に反対のことを実行するelseステートメントです。何かのようなもの:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
  If Me![PULL STATUS] = "S" Then
    Me![PULL STATUS].BackColor = vbRed
    Me![PULL STATUS].FontBold = True
    Me![PULL STATUS].ForeColor = vbWhite
  Else
    Me![PULL STATUS].BackColor = vbWhite
    Me![PULL STATUS].FontBold = False
    Me![PULL STATUS].ForeColor = vbBlack
  End If
End Sub
于 2013-11-07T16:50:06.743 に答える
0

MS Access は条件付き書式を使用します - MS Excel によく似ています。VBA を使用して背景色を実用的に変更する代わりに、これをお勧めします。これは、「連続フォーム」でうまく機能するはずです。

于 2014-03-12T17:42:08.733 に答える