MS Access:通过vba以无限形式绑定的条件,

时间:2018-08-02 13:41:50

标签: vba ms-access

我只是尝试在MS-Access中从42个未绑定的表单中创建日历,并将它们用作无尽的条目列表。

现在,我想用记录集来填充不同类型的条目(组约会,Joe或Marry的条目等),并为这42种表单创建记录集。最后,所有这些条目都应具有特定的颜色,因此Joe将获得蓝色,并与红色结婚。

因此,首先我填写表单的记录集,然后运行,然后像下面这样扔它:

Dim objFormatConditionGroup As FormatCondition
Dim objFormatConditionJoe As FormatCondition
Dim objFormatConditionMarry As FormatCondition

Dim ctl As Control

With Me
  Do While Not .Recordset.EOF
    Set ctl = .Topic

    Set objFormatConditionGroup = ctl.FormatConditions.Add(acExpression, , "'" & .Recordset.typ & "' = '1'")
    objFormatConditionGroup.BackColor = enmColor.Red
    objFormatConditionGroup.ForeColor = enmColor.White

    Set objFormatConditionJoe = ctl.FormatConditions.Add(acExpression, , "'" & .Recordset.typ & "' = '2'")
    objFormatConditionJoe.BackColor = enmColor.Blue
    objFormatConditionJoe.ForeColor = enmColor.White

    Set objFormatConditionMarry = ctl.FormatConditions.Add(acExpression, , "'" & .Recordset.typ & "' = '3")
    objFormatConditionMarry.BackColor = enmColor.White
    objFormatConditionMarry.ForeColor = enmColor.Black

    .Recordset.MoveNext
  Loop
End with

以某种方式工作,但是如果我在一个列表中有多个条目,则总会得到所有条目中最后使用的块的样式。像:如果有一个Groupappointment某天某事嫁给了某人(条目按recordset.Typ排序),则所有条目都出现在Marry-Styl中。

我猜想,FormatConditions的条件部分有问题,但我无法弄清楚。它喊叫一个字符串,“ 1 = 1”和“ 0 = 1”的工作方式类似于Expectet。但是,如何引用列表中仅一项的记录集?

或者如何更改控件。列表中仅一个条目的主题,而不是同一步中的所有条目?

1 个答案:

答案 0 :(得分:0)

在FormatConditions中,您不能引用VBA变量或值。您需要引用记录源中的实际列。

例如

ctl.FormatConditions.Add(acExpression, , "[Typ] = '1'")

并且不要在记录集循环中执行此操作。一次添加每个FormatCondition。 (如您所愿,但没有循环。)