2016-04-05 13 views
0

Dies läuft richtig:Zwei fast identische Access-Abfragen, gibt ein ‚Unzulässiger Aufruf Prozedur‘

select [feature number], 
len(mid([feature number],instr([feature number],"."))) > 2 from featuredata 

Daraus ergibt sich ein Invalid procedure call Fehler:

select [feature number] from featuredata 
where len(mid([feature number],instr([feature number],"."))) > 2 

feature number ist ein Textfeld, aber auch wenn ich Verhindern, dass nicht-numerische Werte verarbeitet werden:

Ich bekomme immer noch die Invalid procedure call Fehler. Warum erhalte ich diesen Fehler?

+1

In einem 'IIf' werden beide Ergebnisse ausgewertet, aber nur eins zurückgegeben. Möglicherweise müssen Sie versuchen, eine case-Anweisung zu verwenden. – Kidiskidvogingogin

Antwort

2

Was passiert, ist dies:

Wenn instr([feature number],".") 0 ist, dann rufen Sie

mid([feature number], 0), und dies ist ungültig.

Sie überprüfen sollten, nicht für isnumeric([feature number]) in Ihrem iif, aber für

instr([feature number],".") > 0 

bearbeiten: Warum hat die erste Version laufen?

Während es ausgeführt wird, sollte #Function! für jede Zeile zurückgegeben werden, in der kein "." in [feature number]. Also passiert der Fehler auch hier.

Verwandte Themen