这样运行正确:
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
错误。为什么我会收到此错误?
答案 0 :(得分:2)
这是怎么回事:
如果instr([feature number],".")
为0,则调用
mid([feature number], 0)
,这是无效的。
您不应该在isnumeric([feature number])
中检查iif
,而是
instr([feature number],".") > 0
修改:为什么第一个版本会运行?
当它运行时,对于没有"的每一行,它应该返回#Function!
。"在[feature number]
。所以错误也发生在这里。