Access数据库技术与应用
上QQ阅读APP看书,第一时间看更新

2.3 记录操作

对记录的操作包括添加记录、编辑记录、删除记录、格式化数据表以及从数据表中筛选出所需数据等,这些操作是在定义了表结构之后,在数据表视图中进行的。

进入数据表视图的方法:在导航窗格中双击相应数据表名称即可。以“导师”表为例,打开后的表如图2-31所示,每条记录左侧的灰色凸块称为记录选择器,数据表视图窗口的底部是导航按钮,用于快速转移到特定记录上。

图2-31 数据表视图

2.3.1 追加记录

1.追加新记录

Access总是在数据表的最后一行添加新记录,共有如下4种操作方法。

(1)直接添加记录:直接将光标定位在表的最后一行,即记录选择器上标有“*”的记录,即可向新记录中输入数据。

(2)单击导航按钮中的按钮,插入点被放置到新记录的第一个字段中。

(3)单击“开始”选项卡中的“新建”按钮,插入点也将出现在新记录的第一个字段中。

(4)右击任意一条记录的记录选择器,在弹出的快捷菜单中选择“新记录”命令,同样可以将插入点放置到新记录中。

追加新记录时,一个字段内容输入完毕或者按【Esc】键撤销、或者按【Enter】键接受,如果是接受则Access会自动进行数据的实体完整性约束、参照完整性约束和域完整性约束(即有效性规则)检查。正确时插入点跳到下一个字段进行输入;错误时系统会通过对话框给出相应的出错信息。以“导师”表为例,“导师编号”字段作为主键既不能是空值,也不允许是重复值;“系编号”字段作为外键,取值必须是参照表“系”表中已经存在的系编号,或者取空值;“年龄”字段的值必须介于40~65之间。任何违反上述约束的数据都不能进入“导师”表中。

追加新记录时,只要离开记录,该记录所做的输入立即保存,所以关闭数据表视图窗口前无需存盘。

2.利用查阅属性给字段赋值

对某些固定的数据可以通过查阅属性给字段赋值以实现选择输入,给字段赋的值可以来自表/查询,也可以来自指定的固定值集合。这样既可以减轻键盘输入的劳动强度,也可以阻止违背各种约束的数据进入数据表中。

【例2-13】用下拉列表框为“导师”表输入系编号。

“导师”表中的“系编号”字段是外键,其值必须是“系”表的“系编号”字段有效值。因此可将“导师”表中的“系编号”字段设置为下拉列表框,数据来源是“系”表,这样可以保证“导师”表中的系编号全部都是合法数据。设置步骤如下:

(1)进入“导师”表的设计视图,选中“系编号”字段。

(2)在“查阅”属性选项卡中,先将显示控件的类型由“文本框”改为“列表框”,如图2-32所示;然后将“行来源类型”设置为“表/查询”,并在“行来源”中选择“系”表,如图2-33所示;其余属性不变。

图2-32 改变“系编号”的显示控件

图2-33 设置行来源类型及行来源

(3)保存后,打开数据表视图,即可通过下拉列表框输入或修改“系编号”字段,如图2-34所示。

图2-34 通过下拉列表框输入或修改系编号

说明:显示控件中的文本框用于键盘输入,列表框用于选择输入,组合框既可以键盘输入,也可以选择输入,综合了文本框和列表框的功能。

【例2-14】用组合框为“导师”表提供性别数据。

“导师”表中的“性别”字段只有“男”“女”两种选择,因此也可用下拉列表框或组合框输入。由于没有数据表能提供“男”“女”值,可将“性别”字段查阅属性的“行来源类型”选为“值列表”,然后在“行来源”中输入数据“"男";"女"”(注意:男、女是文本型常量,需加英文单引号或双引号;多个值之间需用英文分号进行分隔),如图2-35所示。同理可设置“研究生”表的“性别”字段。

图2-35 行来源类型为“值列表”

说明:前面两个例子也可使用“查阅向导”来实现,例如,在例2-14中,选择“性别”字段,在其“数据类型”下拉列表框中选择“查询向导…”选项,即可启动查询向导,如图2-36所示。设置完成后,“性别”字段的文本型数据类型保持不变。

3.向OLE对象类型的字段输入数据

OLE对象类型字段比较特殊,它的数据不是一般的字母、数字或符号,而是一幅图片或是一段音乐,这些数据无法用键盘输入。如果是图片,则可以使用Office提供的剪贴画,或者插入磁盘上的bmp格式的图片文件。

【例2-15】为“导师”表第一条记录的“照片”字段输入图片。

(1)打开数据表视图,右击第一条记录的“照片”字段,在弹出的快捷菜单中选择“插入对象”命令,打开相应的对话框。

(2)选择“由文件创建”单选按钮,如图2-37所示;然后单击“浏览”按钮,在打开的对话框中选择图片所在的路径和文件名;选中后,依次单击两个对话框窗口中的“确定”按钮,完成图片的插入操作。

图2-36 “查询向导”对话框

图2-37 为OLE对象类型字段选择图片文件

说明:图片本身在数据表中并不显示。若要浏览某条记录的照片,打开数据表视图后,可双击该记录的“照片”字段,系统将运行“画图”“Microsoft Photo Editor”或“Windows图片和传真浏览器”等应用程序打开照片。

2.3.2 记录的选定与记录指针的移动

1.选定记录

一条记录被选定,则整条记录将成为操作的对象,可实现对记录的删除、复制、剪切等操作。选定记录的常用方法包括:

(1)单击记录选择器(记录左侧的灰色凸块),可选定一条记录。

(2)在记录选择器上拖动鼠标,可选中若干条连续的记录。

(3)按住【Shift】键的同时单击某记录的选择器,则选中从插入点至该记录选择器之间的全部记录。

2.移动记录指针

记录指针是一根假想的指针,它指向的记录即为当前记录,是编辑处理的对象。欲使某条记录成为当前记录,最简单的方法是在该条记录的任意处单击,此时记录选择器由灰色变为金黄色。

通过数据表视图窗口下侧的记录导航按钮也可有规则地移动记录指针:

(1)单击,移动到第一条记录。

(2)单击,移动到当前记录的上一条记录。

(3)单击,可将记录指针分别移动到下一条记录或最后一条记录。

(4)单击,是在最后插入一条新记录。

(5)在导航按钮的文本框中输入数字并按【Enter】键,该记录号对应的记录即成为当前记录。

2.3.3 编辑记录数据

1.编辑与删除记录

Access的数据表视图本身就是一个全屏幕编辑器,将插入点放置到某个单元格中,就可以方便地编辑或者删除数据。数据更改之后,只要将插入点移动到另一个单元格,修改结果即被确认;在移动插入点前按【Esc】键,可取消对数据的更改,该单元格数据自动恢复原值。

在选定记录后,若按【Delete】键,选定记录即处于待删除状态,同时出现相应的确认删除对话框,如图2-38所示。如果单击“是”按钮,选定记录即被删除,且被删除记录不能恢复(操作不能撤销);如果单击“否”按钮,可恢复显示处于待删除状态的记录。

图2-38 删除选定的导师编号为“103”和“104”的记录

除了上述删除方法,以下操作也可以删除选定的记录:

(1)单击“开始”选项卡中的“删除”按钮。

(2)右击选定对象,在弹出的快捷菜单中选择“删除记录”命令。

说明:

同追加记录一样,被编辑、删除的数据和记录必须满足实体完整性、参照完整性和域完整性,具体表现为:

(1)任何记录的主键字段值不能删除、剪切,其值不能重复。

(2)外键值不能更新成一对多关系中“一”表的主键不存在的值。例如,由于“系”表中3条记录的“系编号”依次为D01、D02、D03,所以“导师”表的“系编号”字段的值不能取D09。

(3)若在建立一对多关系的“编辑关系”对话框中选择了“级联更新相关字段”,当“一”表中的主键字段更新时,“多”表中的外键字段将自动更新。例如,将“系”表中的“系编号”D02改为D99后,所有“导师”表中的D02将自动更新为D99。

(4)若在建立一对多关系的“编辑关系”对话框中选择了“级联删除相关记录”,当“一”表中的记录删除时,“多”表中的相关记录也将自动删除。例如,若删除“系”表中“系编号”为D01的一条记录,则“导师”表中所有“系编号”为D01的记录将全部自动删除。

2.查找数据

在数据库中查找一个特定数据不是一件容易的事,为此Access提供了自动查找数据的方法:打开数据表视图后,单击“开始”选项卡中的“查找”按钮,弹出图2-39所示的“查找和替换”对话框。

图2-39 “查找和替换”对话框

其中:

(1)“查找内容”文本框用于输入待查找数值。

(2)“查找范围”下拉列表框决定是在插入点所在的字段中找,还是在全表范围查找。

(3)“匹配”下拉列表框有3个选项,即“字段任何部分”“整个字段”“字段开头”。假定表中有值534、345、34、3434,现查找34,若选择“字段任何部分”匹配方式可找到全部4个数据,若选择“整个字段”方式只能找到第3个数据,若选择“字段开头”方式可找到后3个数据。

(4)“搜索”下拉列表框有3个选项,即“向上”“向下”“全部”。若选择“向上”,则只搜索插入点以前的部分数据,反之则搜索插入点后面的部分或全部数据。

3.替换数据

替换是在查找到数据的基础上,用新数据代替旧数据。单击“开始”选项卡中的“替换”按钮或在图2-39所示对话框中选择“替换”选项卡,可进行替换设置。“替换”选项卡与“查找”选项卡相比,多了一个“替换为”文本框,其中的内容用于替换匹配到的数据。

4.复制、粘贴数据

利用Windows或Office提供的剪贴板,可以便捷地复制、移动数据(可以是字段里的值、若干连续字段或若干整条记录,这取决于你所选择的对象)。复制若干连续字段的操作步骤如下:

(1)打开数据表视图后,选定连续区域的数据(注意此时鼠标指针应是“”)。

(2)右击选定的数据,在弹出的快捷菜单中选择“复制”命令,或单击“开始”选项卡中的“复制”按钮,将选定内容复制到剪贴板中。

(3)将插入点放置到目的单元格中,选择快捷菜单中的“粘贴”命令或单击“开始”选项卡中的“粘贴”按钮将剪贴板内容粘贴到单元格中。

快捷菜单中的“剪切”命令或“开始”选项卡中的“剪切”按钮,用于将选定的数据移动到剪贴板中,但连续选定的单元格不能使用“剪切”命令。

2.3.4 数据表的格式化

格式化操作可以使数据表具有美观的外表,但与Excel等电子表格软件相比,Access的数据表在更多场合是以后台方式工作,因此其格式化功能要逊色许多,绝大多数格式化的作用对象是整个数据表,而非一个单元格、一条记录或一列。

1.设定列宽

打开数据表视图后,列宽最直观的调节方式是将鼠标指针移动到两个字段名的连接缝上,等指针形状成为双向箭头时直接拖动;如果双击两个字段名之间的连接缝,则左侧字段的宽度将自动设置为最适合的列宽。

精确设置列宽的方法是:选择快捷菜单中的“字段宽度”命令,在弹出的对话框中为选定列设置宽度,如图2-40所示。若选中“标准宽度”复选框,则将选定列的宽度设置为标准(默认)宽度,每列宽度相同;若单击“最佳匹配”按钮,则根据数据的长度自动调整列宽。

2.设定行高

Access数据表的每条记录的行高都是相等的。与调整列宽的操作类似,最直接的方法是将指针置于两个记录选择器之间的缝隙上,待指针变成双向箭头时,向上拖动使行高变窄,或者向下拖动加大行高。

精确设置行高的方法是:选择快捷菜单中的“行高”命令,弹出“行高”对话框,输入行高值,如图2-41所示。如果选中“标准高度”复选框,则根据数据表中文本的字号自动调节每行的高度。

图2-40 “列宽”对话框

图2-41 “行高”对话框

3.表格样式

单击“开始”选项卡“文本格式”组右下角的“设置数据表格式”按钮(见图2-42),弹出“设置数据表格式”对话框,其中的格式设定均针对整个数据表。图2-43所示为将单元格效果设置为“凸起”的数据表。

图2-42 “设置数据表格式”按钮

图2-43 设置单元格效果为凸起

4.字体

字体设置包括字体、字形、字号、颜色、下画线等,作用对象是整个数据表。在“开始”选项卡的“文本格式”组中进行设置,如图2-42所示。

5.列的隐藏与取消隐藏

为方便起见,可将某些不参加操作的列予以隐藏。被隐藏的列并没有被删除,只是不显示而已。选择快捷菜单中的“隐藏字段”命令,则选定的列将“消失”;将列的宽度设置为0同样可以达到隐藏列的效果。选择快捷菜单中的“取消隐藏字段”命令,弹出图2-44所示的“取消隐藏列”对话框,在其中可对任意列进行隐藏或取消隐藏设置,图2-44中没有选中的“性别”和“职称”字段将被隐藏。

6.冻结列

如果一个数据表的列很多,或者列很宽,在输入数据时往往首尾不能兼顾。以“导师”表为例,在输入“系编号”字段时,“姓名”列可能已移出窗口,给核实数据带来不便,如果能冻结“姓名”列,使之能始终位于数据表窗口内,则问题就迎刃而解。

【例2-16】冻结“导师”表的“姓名”列。

选定“姓名”字段,选择快捷菜单中的“冻结字段”命令,“姓名”列将一直占据数据表视图窗口左侧的位置,移动水平滚动条时不会被“移”出窗口,如图2-45所示。

图2-44 “取消隐藏列”对话框

图2-45 冻结“姓名”列

如果要冻结“姓名”和“职称”两列,则可以在先冻结“姓名”字段的基础上,再用同样的方法冻结“职称”字段。Access会按照列被冻结的时间先后顺序将列固定在数据表视图窗口的左侧。

当不再需要冻结列,可以取消冻结。取消的方法为:在任意字段的列选择器(即字段名)上右击,在弹出的快捷菜单中选择“取消冻结所有字段”命令即可。

7.重新命名列

对数据表中的列重新命名,实质上是修改字段的名称。除了在设计视图中重新命名字段,在数据表视图中也可对列重新命名。方法是:双击列名或右击列名,在弹出的快捷菜单中选择“重命名字段”命令,列名被选定的同时出现插入点,直接输入新列名即可。

2.3.5 子数据表编辑

子数据表充分展示了表与表之间的关系,当两个表已经建立“一对多”关系时,打开“一”表(称为主表),则“多”表数据将以子表的形式呈现。

例如,在建立“系”表与“导师”表的“一对多”关系后,打开“系”表,可观察到第一列的左侧显示,这表示“系”表有对应的子表(“导师”表),且子表处于折叠状态。单击,可展开子表,可见凡是“导师”表中“系编号”与“系”表中“系编号”相同的3条记录均在一个小窗口中对应显示,如图2-46所示。子表展开后,变成;单击后,子表再次折叠,同时呈现

图2-46 打开的“系”表及其展开的子表(“导师”表)数据

用户可随时对打开的主表及子表中的数据进行编辑操作。此外,单击“开始”选项卡“记录”组中的“其他”按钮,展开的菜单中有“子数据表”子菜单(见图2-47),里面还提供了如下操作子数据表的命令:

(1)全部展开:所有的子表全部打开。

(2)全部折叠:折叠所有已打开的子表。

(3)删除:从主表中删除子表,但不删除两者之间的一对多关系。

(4)子数据表:在主表中插入子数据表。

图2-47 “子数据表”子菜单

说明:仔细观察图2-46所示的“导师”子表,注意没有出现“系编号”列。因为“系编号”是“系”表和“导师”表的公共字段,是两个表产生一对多联系的纽带。某个系的子表,必须具备相同的系编号,因此“导师”表的系编号没有必要显示。虽然在“导师”子表中可以编辑数据,但无法修改导师的“系编号”,如果一个导师需要换系,则“导师”表的“系编号”只能在单独打开“导师”表时进行更新。

2.3.6 记录的筛选与排序

1.记录的排序

记录排序是指按某个字段的值升序(从小到大)或降序的顺序显示数据表中的记录。例如,要按“入学分数”降序重排研究生记录,可执行如下操作:将插入点放在“入学分数”列中任何一个单元格内,单击“开始”选项卡中的“降序”按钮;或者单击“入学分数”字段名称右侧的下拉按钮,在弹出的菜单中选择“降序”命令。此时记录则按入学分数值从大到小排列显示;如果单击“升序”按钮或选择“升序”命令则是升序排列。

如果同时选中相邻的若干列进行排序,则可以实现多字段排序。例如,在“研究生”表中同时选定“性别”列和“入学日期”列,单击“开始”选项卡中的“升序”按钮,记录将遵循从左到右的顺序先按“性别”升序排列(先男后女),相同性别则再按“入学日期”列升序排列。此种排序方式要求排序的列必须相邻,最左侧是排序第一字段,然后是排序第二字段,依此类推。如果字段位置不符合要求则需事先调整(拖动字段名即可)。而且所有排序字段都按照同样的方式进行排序。

如需将不相邻的多个字段按照不同的方式进行排序,这就要用到高级排序。

【例2-17】在“研究生”表中要求先按研究方向升序排序,如果有学生研究方向相同再按入学日期降序排序。

(1)打开“研究生”表的数据表视图窗口,单击“开始”选项卡中的“高级”按钮,在展开的菜单中选择“高级筛选/排序”命令,弹出图2-48所示的窗口。

(2)在窗口的下部,第一列:字段名选择“研究方向”,排序选择“升序”;第二列:字段名选择“入学日期”,排序选择“降序”。单击“开始”选项卡中的“高级”按钮,在展开的菜单中选择“应用筛选/排序”命令,排序结果如图2-49所示。

图2-48 高级筛选/排序窗口

图2-49 研究方向升序排序和入学日期降序排序

单击“开始”选项卡中的“取消排序”按钮,可取消设置的排序,使数据表中的记录按原顺序显示。

2.记录的筛选

隐藏列操作可以将暂时不需要的字段隐藏起来,而筛选操作可以在数据表中只显示所需的数据记录。Access提供了选择筛选、筛选器筛选和高级筛选等方式。

选择筛选就是基于选定的内容进行筛选,这是最简单的筛选方法,使用它可以快速地筛选出所需要的记录。例如,现在需要查看“研究生”表中男同学的信息。打开“研究生”表的数据视图窗口后,将插入点置于某条记录的“性别”字段为“男”的单元格中,然后单击“开始”选项卡中的“选择”按钮,在展开的菜单中选择“等于"男"”命令,从数据表中筛选出男同学的记录,如图2-50所示。仔细观察“性别”字段名,字段名右侧多了个漏斗,说明此字段设置了筛选条件。如需删除此筛选条件,可单击“性别”字段名右侧的下拉按钮,在展开的菜单中选择“从"性别"清除筛选器”命令即可。筛选操作可以叠加,即可进行多字段筛选。例如,现在需查看“地理学”研究方向男同学的信息,就可以在刚才的基础上采用相同的方法设置研究方向为“地理学”。

图2-50 筛选男生的数据

筛选器提供了一种更为灵活的方式,它可以选择字段中的多个值,可以定义筛选条件。例如,筛选入学分数在350~400之间的学生记录,将插入点置于“入学分数”列的任何一个单元格中,单击“开始”选项卡中的“筛选器”按钮,在展开的菜单中选择“数字筛选器”→“期间”命令,弹出“数字边界之间”对话框,在其中进行设置,如图2-51所示。注意:具体的筛选列表取决于所选字段的数据类型和值。

图2-51 筛选器筛选

当筛选条件比较复杂时,可以使用高级筛选。

【例2-18】在“研究生”表中要求筛选出2014年入学的会计学研究方向的女生。

(1)打开“研究生”表的数据表视图窗口,单击“开始”选项卡中的“高级”按钮,在展开的菜单中选择“高级筛选/排序”命令,在弹出的窗口中设置筛选条件,如图2-52所示。第一列:字段名选择“入学日期”,条件输入“>=#2014-1-1#And<=#2014-12-31#”(日期型常量用一对“#”括起来;两个条件通过And运算符进行连接);第二列:字段名选择“研究方向”,条件输入“="会计学"”(“=”可以省略);第三列:字段名选择“性别”,条件输入“="女"”。

(2)筛选条件设置好后单击“开始”选项卡中的“高级”按钮,在展开的菜单中选择“应用筛选/排序”命令,筛选结果如图2-53所示。

图2-52 筛选条件的设置

图2-53 筛选结果

单击“开始”选项卡中的“高级”按钮,在展开的菜单中选择“清除所有筛选器”命令,可退出筛选,使数据表中的记录按原样显示。

2.3.7 记录的汇总统计

Access提供了对数据表中的记录进行汇总统计的功能,例如:统计导师的最大年龄,统计学校设置多少系等。它将Excel中的汇总功能移植到了Access中。

【例2-19】统计研究生的人数和平均入学分数。

打开“研究生”表的数据表视图窗口,单击“开始”选项卡中的“合计”按钮,在数据表的最下方将自动添加一个空汇总行。单击“姓名”列的汇总行单元格,出现一个下拉按钮,单击下拉按钮,从下拉列表框中选择“计数”选项;类似地在“入学分数”列的汇总行单元格中选择“平均值”选项,汇总结果如图2-54所示。

图2-54 汇总结果

再次单击“开始”选项卡中的“合计”按钮,可以隐藏汇总行(不是删除)。当再次显示该行时,Access会记住对数据表中的每列应用的汇总方式,该行会显示为以前的状态。

2.3.8 记录的打印输出

通过打印机输出数据表的操作很简单,当打开一个数据表,或者在导航窗格中选定一个数据表后,单击“文件”菜单,在打开的Backstage视图中单击“打印”命令,在中间窗格中单击“打印”选项,弹出图2-55所示的“打印”对话框,在其中进行设置:选择打印机、确定打印范围和打印份数等。如果单击“设置”按钮,弹出“页面设置”对话框,在其中设置页边距和是否要打印标题,如果取消打印标题,则数据表标题、打印日期和页脚将同时取消。设置好后即可打印输出数据表中的记录。在默认情况下,输出的内容包括记录、表标题、打印日期和页码。

图2-55 “打印”对话框和“页面设置”对话框

在Backstage视图的中间窗格中如果单击“打印预览”选项,可显示打印后的效果,如图2-56所示。

图2-56 打印预览