访问VBA If语句更改后退和报告字段的字体颜色

时间:2013-11-07 16:39:06

标签: vba ms-access access-vba

我正在尝试在报表上突出显示一个字段,并在报表上填充“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

2 个答案:

答案 0 :(得分:1)

您的代码应包含在报告的 详细信息 部分的 格式 事件中。当您设置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

答案 1 :(得分:0)

MS Access使用条件格式 - 很像MS Excel;我推荐这个,而不是使用VBA实际更改背景颜色。这应该适用于“连续表格”。'