有时,你可能想要对数据进行排序,而不是按字母顺序或数字顺序排序,而是按用户定义的顺序 (也称为自定义或逻辑顺序) 。 例如,对工作日进行排序,以便首先显示星期一比按字母顺序排序更有意义,其中星期五排在第一位。 可以在表或查询的数据表视图中或窗体的窗体视图中对数据进行排序。
您要做什么?
对少量有限的唯一字段值进行排序
在此过程中,你将编写一个表达式,该表达式使用 IIf 函数对员工的职务进行排名。
首先,创建包含三个字段的表: Title、FirstName 和 LastName。 在“标题”字段中,为四条新记录输入以下值:
-
内部销售协调器
-
Sales Manager
-
Sales Representative
-
销售副总裁
在四条记录的“FirstName”和“LastName”字段中,输入所需的任何名称。
-
现在,在数据表视图中打开表。
-
在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 高级 ”,然后单击快捷菜单上的“ 高级筛选/排序 ”。
-
将所需的字段(如 FirstName、LastName 和 Title)添加到网格。
-
右键单击第一个空白列中的 “字段 ”行,单击“ 缩放”,然后键入以下表达式:
IIf ([Title] = “Vice President, Sales”, 1, IIf ([Title] = “Sales Manager”, 2, IIf ([Title] = “Sales 代表”, 3, IIf ([Title] = “Inside Sales Coordinator”, 4, 5) ) ) )
Title 是包含正在排名的值的字段的名称。 用引号括起来的值是存储在 字段中的各个值。 下面的数值是分配给它的排名。 前面的表达式将排名 1 到 4 到 4 个不同的标题分配,并将排名 5 分配给所有其他标题。 执行排序时,将为此表达式中未提及的标题分配相同的排名 (5) 。
-
在包含表达式的列的 “排序” 行中,单击“ 升序”。
-
在“ 开始 ”选项卡上的“ 排序 & 筛选器 ”组中,单击“ 切换筛选器”。
IIf 函数返回与 Title 字段中的值对应的数值。 例如,如果“标题”字段中的值为 “销售经理”,则分配的数字为 2。 如果“标题”字段中的值未列为函数中的参数(例如 “区域协调器”),则会为其分配数字 5。 然后,查询按升序对这些数字进行排序。
对大量唯一字段值进行排序
如果要对大量值进行排名,则对数据进行排序的更好方法是创建查找表。
假设 Employees 表引用了 50 多个不同的标题。 首先需要创建查找表并准备现有表以查找新表。 然后,将这两个表关联并创建查询。
创建查找表并修改现有表
-
创建将存储标题的新查阅表。 将表命名 为 tblTitles,并将字段设置为括号中指示的数据类型,如下表所示:
TitleID
(自动编号)标题
(文本)1
销售副总裁
2
Sales Manager
3
Sales Representative
4
内部销售协调器
-
将 TitleID 字段设置为主键。
-
修改 Employee 表,使其查找 tblTitles 表。
-
在“设计”视图中,将 “标题” 字段的名称更改为 “TitleID”。
-
在 “数据类型” 列中,将 “数据类型” 更改为 “数字”。
-
-
在“ 常规 ”选项卡上的“ 字段属性”下,将 “字段大小 ”更改为 “长整型”。
-
保存表并忽略有关数据丢失的警告。
-
切换到“数据表视图”。
-
使用与标题值对应的 TitleID 值填充 Titles 列。
例如,对于 Title 值为 Sales Manager 的记录,请键入 2。 对于“销售代表”,键入 3。
-
保存并关闭表。
关联两个表
-
在“数据库工具”选项卡上的“关系”组中,单击“关系”。
-
在“ 设计 ”选项卡上的“ 关系” 组中,单击“ (添加表 ”或“在 Access) 中 显示表 ”。
-
选择 “tblTitles 和 Employees”,然后单击“ 添加 ”将其添加到“关系”窗口。 关闭“显示表”对话框。
-
将 TitleID 字段从 tblTitles 表拖动到 Employees 表中的 TitleID 字段。
“ 编辑关系 ”对话框随即打开。
-
确保这两列中显示的字段名称均为 TitleID,并且“ 关系类型 ”框也显示 “一对多”。 如有必要,可以更改字段名称。
-
选中“实施参照完整性”复选框。
-
单击“创建”以创建关系。
“ 编辑关系 ”对话框将关闭并保存更改。
-
关闭“ 关系 ”选项卡。
创建查询
-
在“创建”选项卡上的“查询”组中,单击“查询设计”。
-
在 “添加表 (在 Access) 中显示表 ”对话框中,单击“ 表 ”选项卡,双击“ 员工”,然后双击 “tblTitles”。
-
将 Employees 表中的 EmployeeID、LastName 和 FirstName 字段以及 tblTitles 表中的 Title 字段添加到查询设计网格。
-
切换到“数据表视图”。