access 2003 中的色域
Posted
技术标签:
【中文标题】access 2003 中的色域【英文标题】:Color field in access 2003 【发布时间】:2016-02-04 15:39:32 【问题描述】:在 MS-Access 2003 上,我有一个显示查询结果的掩码。例如查询结果为:
Column1Column2
1 Y
2 N
3 N
4 Y
它在掩码广告中显示一个表格。 如果值为 Y,我需要为 column2 的背景字段着色。为此,我使用了代码:
Private Sub Form_Current()
if (Column2) = "Y" Then
Stato.BackColor = vbGreen
End If
End Sub
但它为所有背景着色。所以我尝试了一种解决方法:
For Each ctl In Me.Section(acDetail).Controls
If (ctl) = Column2 Then
If (Me.Column2) = "Y" Then
ctl.BackColor = QBColor(2)
End If
End If
但这也为所有背景着色。有什么建议吗?
【问题讨论】:
当窗体处于设计视图时,右键单击 Column2 文本框,查看快捷菜单中是否提供“条件格式”。 (抱歉,我记不清 Access 2003 的功能了,因为我已经好几年没用过了。) ^^ 这个。它在 Access 2003 中可用:techonthenet.com/access/reports/cond_format2.php @HansUp 你的回答很好!我正在考虑 vba 脚本并忘记简单地检查条件格式!谢谢! 【参考方案1】:您可以使用类似的方法在代码中添加条件格式。此函数基于我使用的一些代码,您可能需要对其进行调整以满足您的特定要求。
Dim fcd As FormatCondition
Dim ctl As control
Dim frm As Form
Dim txt As TextBox
Dim strCond As String
For Each ctl In frm.Controls
If TypeOf ctl Is Access.TextBox Then
If ctl.Visible = True Then
Set txt = ctl
If txt.Name = "Column2" Then
strCond = "=Y"
Set fcd = txt.FormatConditions.Add(acExpression, acEqual, strCond)
fcd.BackColor = QBColor(2)
End If
End If
End If
Next
【讨论】:
为了 Carlo 的目的,它应该更简单Set txt=frm.Controls("Column2")
不需要检查表单包含的每个控件,只需按名称引用即可。以上是关于access 2003 中的色域的主要内容,如果未能解决你的问题,请参考以下文章
使用宏或 VBA 正确关闭 access 2003 中的隐藏窗口?