2015-07-09 2 views
0

простой запрос:мс доступа запрос "несоответствие типов"

SELECT * 
FROM Table 
WHERE Val([TextField]) > 0; 

я recevie ошибку:

Data type mismatch in criteria expression

же в CInt \ CLng упаковке.Размеры.

путь? или по-другому?

+0

вы можете попробовать '' 0 "' вместо '0'. –

+2

Проблема заключается в том, что 'Val ([TextField])' вызывает ошибку, потому что по крайней мере одно значение в '[TextField]' не может быть преобразовано в 'Val'. Вполне вероятно, что в нем есть текст, который не может быть преобразован в число. Исследуйте функцию «IsNumeric», которая сообщит вам, действительно ли значение является действительным числом, прежде чем вы вызовете «Val». –

+0

@ArindamNayak такой же ошибка. – dovid

ответ

1

Вы, вероятно, имеют нулевые значения, так что попробуйте это:

SELECT * 
FROM Table 
WHERE [TextField] Not Is Null And Val([TextField]) > 0; 

или:

SELECT * 
FROM Table 
WHERE Val([TextField] & "") > 0; 

Тестирование для Val([TextField]) > "0" не имеет смысла, так как Val возвращает число.

Смежные вопросы