多个布尔语句 VBA



我对一些布尔逻辑有问题。

本质上,我希望在 VBA 中编程一个过滤器,这样,

A = True AND (B = True OR B = False)

我似乎无法在 VBA 中正确执行此操作(我正在使用 MS Access(。

我试过:

A = True AND B = True OR B = False

但这显然失败了(基本上寻找 A,B = 真或 B = 假(。

我在这里错过了一些明显的东西吗?

我选择省略实际代码,但如果要求,我可以发布。我的想法是我缺少一些基本的布尔逻辑。

如果ABCBoolean表达式,那么将它们与布尔文字(TrueFalse(进行比较是多余的:表达式已经是一个布尔表达式。

这使得原始逻辑是这样的:

If A And (B Or Not C) Then

And运算符比Or运算符具有更高的优先级,因此首先对其进行计算;如果需要将(B Or Not C)部分作为一个整体进行计算,则需要括号,否则A And B优先,使表达式(错误地(计算为:

If (A And B) Or Not C ' redundant parentheses to illustrate operator precedence

编辑:我误读了OP,我的大脑把那个C放在那里。 正如 BigBen 指出的那样,If A And (B Or Not B) Then是多余的 - 简化的逻辑将是If A Then.仍然值得注意的是运算符优先级,并在适用和适当时使用括号。

最新更新