【发布时间】:2018-04-16 15:22:36
【问题描述】:
我在子表单中有一个数据表,它在运行时使用 querydef 作为子表单的 SourceObject 动态创建(这部分工作正常,数据表已创建)。我事先不知道数据表列的实际列表,但“角色”列始终存在:
Dim db As Database
Dim qd As QueryDef
Dim strSQL As String
Dim rs As DAO.Recordset
Set qd = CurrentDb.QueryDefs("q_XO")
Set db = CurrentDb
qd.SQL = "SELECT * FROM XO_Table;"
Forms!mainform.[XO_Table subform].SourceObject = ""
Forms!mainform.[XO_Table subform].SourceObject = "query.q_XO"
接下来,我想添加条件格式以在单元格的值不为 NULL(单个条件)时简单地设置列的 BackColor。
问题:我无法在设计视图中看到数据表(在运行时创建)以通过典型的 MS Access 界面设置条件。我怀疑我需要使用 VBA 来做到这一点。
以下是我目前不成功的方法。错误:“对属性 FormatConditions 的引用无效”(错误:2455),在下面的删除行中:
Dim objFrc As FormatCondition
Forms![mainform]![XO_Table subform].Form!Role.FormatConditions.Delete
Set objFrc = Forms![mainform]![XO_Table subform].Form!Role.FormatConditions.Add(acFieldValue, acGreaterThan, "")
我是否走在正确的道路上?
谢谢!
【问题讨论】:
-
SourceObject 必须是表单或报表,因为只有文本框和组合框具有 ConditionalFormatting。所以不,不是正确的道路。