在Access 2010中,我有一个连续的表单,并且我想根据另一个单元格中的值更改“单元格”的某些属性,如边框颜色。我还没有找到在VBA中执行此操作的方法,因为它是一个连续的表单并且直接在VBA中更改属性会更改所有记录,而不仅仅是我所在的记录。我假设我必须使用某种形式的条件格式,但条件格式GUI只允许我设置背景颜色,基本文本格式和Enabled属性。
如何在连续表单上设置控件的其他属性,仅用于特定记录?
答案 0 :(得分:1)
你不能。使用背景或文字颜色。
另请参阅https://msdn.microsoft.com/en-us/library/office/ff821010.aspx - 只有BackColor
和ForeColor
。
答案 1 :(得分:1)
最后回顾我是如何解决这个问题的。 txtFixMax是我想给出一个时髦边框的控件(取决于字段[ChangedToday]中的值)。它已经有条件格式来更改背景颜色。 我创建了第二个控件txtFixMaxOverlay,使其成为一个小方块并将其放在控件txtFixMax的顶部。我设置了txtFixMaxOverlay的属性来删除边框,并为它提供了与txtFixMax相同的条件格式,因此它对于眼睛是不可见的(但是Visible属性= true)。然后我给了它额外的条件,列表中的第一个,基于[ChangedToday],来改变它的背景颜色。
效果不是边框(虽然我可以通过4个控件进行很多繁琐的定位来实现边框效果),但它确实为我提供了视觉上更改的额外元素。效果是:
答案 2 :(得分:0)
是的,你可以......只是没有内置的条件格式化功能。 使用“表单详细信息”部分的“Paint事件”。仍然存在各种限制,但至少可以设置更多属性,而不仅仅是背景和前景色。
示例:
Private Sub Detail_Paint()
If Me.IndicatorColumn.Value = "Critical" Then
Detail.BackColor = RGB(255,0,0)
Detail.AlternateBackColor = Detail.BackColor
Me.AnotherColumn.BorderStyle = 7 'Dash Dot Dot
Me.AnotherColumn.BorderColor = vbMagenta
Else
Detail.BackColor = vbWhite
Detail.AlternateBackColor = RGB(150, 150, 150)
Me.AnotherColumn.BorderStyle = 0 'Transparent
Me.AnotherColumn.BorderColor = vbWhite
End If
End Sub