2013-04-02 4 views
1

У меня возникли проблемы с извлечением всего числа из поля чисел в построителе выражений в Access.Превосходное целое число из десятичного числа в выражении доступа

Вот что я думал, что будет работать:

Left([NumField],InStr(1,[NumField],".")-1) 

Это не работает. После запуска моего запроса, я получаю окно сообщений выскакиваю с указанием «Неправильный вызовом процедуры»

поля перед выражением = 1,4

поля после выражения = 1

Таким образом, принимая целое число и извлекая что , Из всего числа может быть 3, 30 или 300. Длина будет разной во все времена, поэтому вы не можете использовать триммер слева для длины 1.

Предложения?

ответ

2

Вы, кажется, обрабатываете свое числовое значение как строку, чтобы извлечь всю цифровую часть. Предложите вам вместо этого использовать функцию Int().

Int([NumField]) 

Существует также родственная функция, Fix(). Из справочной справки Access:

Разница между Int и Fix заключается в том, что если число отрицательно, Int возвращает первое отрицательное целое число, меньшее или равное числу, тогда как Fix возвращает первое отрицательное целое число, большее или равное числу , Например, Int конвертирует -8.4 в -9, а Fix конвертирует -8.4 в -8.

Я предположил, что вы хотите получить номер , возвращенный запросом. Если вам действительно нужен номер в виде строки, вы можете использовать CStr(Int([NumField])) или Format(Int([NumField]), "#").

+0

Это сработало! Благодарю. Сначала я не понял, что мое поле действительно представляет собой числовое поле. По какой-то причине я думал, что это поле для струн, поэтому он не работает. Использование 'Int [NumField]' вернет результаты, которые мне нужны. – Muhnamana

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