IIF和LEFT功能

时间:2016-05-27 14:48:14

标签: string ms-access iif

有人可以告诉我在此查询中我做错了什么来获取计算列吗?

IIf(Left([VIN Number],2)="1F" OR "2F" OR "3F" OR "1L” OR “2L” OR “NM”,”Food”,"Comp")

它给我错误说“你可能已经输入了没有操作员的操作数”

2 个答案:

答案 0 :(得分:2)

你不能有像......这样的复合条件。

Something = "a" OR "b"

您必须在Something = ...

之后重复OR
Something = "a" OR Something = "b"

对于您的查询IIf()表达式,包含匹配值的In()列表会更简洁......

IIf(Left([VIN Number],2) IN ("1F", "2F", "3F", "1L", "2L", "NM"), "Food", "Comp")

请注意,您的代码示例包含排版引号()。确保在实际代码中使用简单引号(")。

答案 1 :(得分:1)

OR运算符并不像您期望的那样工作。它要求语句在其任何一方都解析为TRUE或FALSE,因此您无法检查某些内容是否等于此类内容之一。

您需要这样做:

 Iif(Left([VIN Number],2)="1F" OR Left([VIN Number],2)="2F" OR Left([VIN Number],2)="3F"...., "Food", "Comp")

或者您需要这样做:

Iif(Left([VIN Number],2) In("1F","2F", "3F"....), "Food", "Comp")