这在MS Access VBA中是否有效:
iif ([company] = "starbucks", "retail", iif ([item] <> "", "DLookup(....)", ""))
我正在努力获得与上述工作类似的东西。
答案 0 :(得分:2)
是
在Jet / ACE抱怨“表达式过于复杂”之前,您最多可以嵌套14个IIf
语句。 VBA IIf
函数没有类似的限制。
由于您在表单的控件源中使用它,因此Access将使用其表达式服务(基本上将其视为Jet / ACE查询的一部分)对此进行评估,因此将应用14个嵌套限制级别
另请注意,我将Jet / ACE IIf
称为语句,将VBA IIf
称为函数。虽然这些术语有时被松散地使用,但它们具有精确的含义。 Jet / ACE的IIf
语句是真实的ternary operator。结果是它通常比同名的VBA函数更有效,并且不会受到潜在的side effects的影响。