两个几乎相同的 Access 查询,一个给出 'Invalid procedure call'
Two nearly identical Access queries, one gives 'Invalid procedure call'
运行正确:
select [feature number],
len(mid([feature number],instr([feature number],"."))) > 2 from featuredata
这会产生 Invalid procedure call
错误:
select [feature number] from featuredata
where len(mid([feature number],instr([feature number],"."))) > 2
feature number
是一个文本字段,但即使我阻止处理非数字值:
select [feature number] from featuredata
where iif(isnumeric([feature number]),
len(mid([feature number],
instr([feature number],"."))) > 2,false)
我仍然收到 Invalid procedure call
错误。为什么会出现此错误?
这是怎么回事:
如果instr([feature number],".")
为0,那么你调用
mid([feature number], 0)
,这是无效的。
您不应该检查 iif
中的 isnumeric([feature number])
,而是检查
instr([feature number],".") > 0
编辑:为什么第一个版本运行?
虽然它 运行s,但它应该 return #Function!
对于没有“.”的每一行。在 [feature number]
。所以错误也发生在这里。
运行正确:
select [feature number],
len(mid([feature number],instr([feature number],"."))) > 2 from featuredata
这会产生 Invalid procedure call
错误:
select [feature number] from featuredata
where len(mid([feature number],instr([feature number],"."))) > 2
feature number
是一个文本字段,但即使我阻止处理非数字值:
select [feature number] from featuredata
where iif(isnumeric([feature number]),
len(mid([feature number],
instr([feature number],"."))) > 2,false)
我仍然收到 Invalid procedure call
错误。为什么会出现此错误?
这是怎么回事:
如果instr([feature number],".")
为0,那么你调用
mid([feature number], 0)
,这是无效的。
您不应该检查 iif
中的 isnumeric([feature number])
,而是检查
instr([feature number],".") > 0
编辑:为什么第一个版本运行?
虽然它 运行s,但它应该 return #Function!
对于没有“.”的每一行。在 [feature number]
。所以错误也发生在这里。