你能在控制源中将IIF嵌套在IIF中吗?

时间:2011-12-05 16:33:17

标签: ms-access vba access-vba ms-access-2003 iif

这在MS Access VBA中是否有效:

iif ([company] = "starbucks", "retail", iif ([item] <> "", "DLookup(....)", ""))

我正在努力获得与上述工作类似的东西。

1 个答案:

答案 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的影响。