Числа и строки, хранящиеся в поле Short Text (text) или Long Text (memo) в Access, сортируются в алфавитном порядке. Другими словами, числа будут отсортированы по отдельным цифрам, составляющим значение, а не по числовой. Например, значение 11 отображается перед 2, а значение 12 — перед 3, как показано в следующей таблице.
Имя учащегося |
Номер учащегося |
Иван |
1 |
Maria |
10 |
Уильям |
11 |
Марта |
12 |
Джейн |
2 |
Линн |
3 |
Джейсон |
4 |
Марта |
5 |
Чтобы убедиться, что числа отсортированы по числовым значениям, а не по алфавиту, выполните одно из следующих действий:
-
Если поле содержит только числовые значения, попробуйте изменить тип данных поля на Число или Валюта.
-
Используйте следующую процедуру, если:
-
Поле содержит только числовые значения, но вы не хотите изменять тип данных поля.
-
Поле содержит числовые и строковые значения, но при сортировке следует игнорировать строковые значения.
-
Эта процедура использует функцию Val для получения числового значения числа, хранящегося в виде текста. Выражение также использует функцию IIf для обработки значений NULL, которые могут находиться в поле сортировки.
-
На вкладке Главная в группе Сортировка и фильтр нажмите кнопку Дополнительно, а затем в контекстном меню выберите команду Расширенный фильтр.
-
Введите выражение Expr1: IIf([Fieldname] Is Null, 0, Val([Fieldname])) в строке Поле в первом столбце.
Функция IIf проверяет, равно ли значение поля NULL, и, если да, обрабатывает его как 0. Если значение не равно NULL, функция IIf вызывает функцию Val для получения числового эквивалента.
-
В ячейке Сортировка выберите по возрастанию или по убыванию.
Сортировка по возрастанию отображает запись с наименьшим значением сверху и запись с наибольшим значением внизу. Сортировка по убыванию делает наоборот.
-
на вкладке Главная в группе Сортировка и фильтр нажмите кнопку Переключить фильтр.
Если предыдущая процедура не работает, существует другой подход, который позволяет избежать изменения структуры таблицы. Это включает "заполнение" значений, содержащих меньше цифр с начальными нулями. Например, перед применением сортировки измените значения 11, 2, 2000 и 3 на 0011, 0002, 2000 и 0003.