Access中的条件格式设置与VBA中的函数

Access中的条件格式设置与VBA中的函数,vba,ms-access,conditional-formatting,Vba,Ms Access,Conditional Formatting,我一般熟悉编程,但不熟悉Access窗体或VBA 我有条件格式工作。现在我需要使其响应自定义VBA函数的结果。 假设某件事发生的次数是有限制的,具体取决于客户。 标签将显示计数,“第3次,共5次”。 当我们到达五分之五时,它应该是黄色的,五分之六应该是红色的。 请注意,我希望条件格式规则在Access中,而不是在VBA中。VBA只返回我们在条件中测试的值 我不知道如何在条件格式表达式中使用VBA函数的结果,但似乎可以使用变量 我试过了 TripCountValid: GetTripCountVa

我一般熟悉编程,但不熟悉Access窗体或VBA

我有条件格式工作。现在我需要使其响应自定义VBA函数的结果。
假设某件事发生的次数是有限制的,具体取决于客户。
标签将显示计数,“第3次,共5次”。
当我们到达五分之五时,它应该是黄色的,五分之六应该是红色的。
请注意,我希望条件格式规则在Access中,而不是在VBA中。VBA只返回我们在条件中测试的值

我不知道如何在条件格式表达式中使用VBA函数的结果,但似乎可以使用变量

我试过了

TripCountValid: GetTripCountValid(ID)
然后在我的情况下使用TripCountValid,但这似乎不起作用

GetTripCountMsg和GetTripCountValid位于Orders模块中,因为我正在模拟GetBillAcctMsg。 我可以把它移到表单的代码后面


GetTripCountMsg中的My MsgBox被调用,但GetTripCountValid中的MsgBox未被调用。

函数可以在条件格式中引用。使用
表达式Is:
选项。假设您的函数返回布尔值(真/假),则CF规则仅为:

表达式为:
GetTripCountValid([ID])

如果函数返回True,则设置要显示的所需格式。或者,如果您希望将显示更改为False:

表达式为:
非GetTripCountValid([ID])

如果这些表达式不够明确,请使用您喜欢的布尔值对=进行签名

表达式为:
GetTripCountValid([ID])=True


如果函数返回的不是布尔值,请使用最后一种语法与适合于这种情况的任何参数进行比较。关键是,表达式的计算结果必须为True或False。

为什么不使用文本框来显示计数?将条件格式引用到该文本框。显示的内容看起来像查询中的计算字段。TripCountValid的具体内容和位置?通常不会编辑ID字段,因此不会触发AfterUpdate。@June7计数消息位于文本框中,并由格式引用。TripCountValid位于模块中,但如果有帮助,可以位于表单的代码中。非常简单。假设函数返回布尔值(True/False),类似于
表达式的CF规则是:GetTripCountValid([ID])
。我让它作为GetTripCountValid()工作,但不是作为GetTripCountValid([ID])。无论如何,我不应该做两次计算,所以我将此标记为有效答案。