存储在 Access 中的短文本 (文本) 或长文本 (备注) 字段中的数字和字符串按字母顺序排序。 换句话说,数字将基于构成值的单个数字而不是数值进行排序。 例如,值 11 显示在 2 之前,值 12 显示在 3 之前,如下表所示。
学生姓名 |
学生编号 |
John |
1 |
Maria |
10 |
威廉 |
11 |
Mary |
1.2 |
Jane |
2 |
林恩 |
3 |
杰森 |
4 |
Mary |
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。