Access2007数据库快速开发教程(九)
时 间:2013-11-01 13:40:29
作 者:竹笛 ID:8 城市:上海 QQ:2851379730
摘 要:学习要求:本节预计学习课时为0.5小时,重点是:学会创建一个查询。
正 文:
6 查询的设计
学习说明
在前面的课程中,为了讲述的方便,我们已经往tblCodelb表中手工录入了一些测试数据,现在,为了以后的课程讲述的方便,我们仍然需要录入一些数据——首先,请按住【Shift】键,双击打开【Main.mdb】文件——当前,如若左侧默认显示的不是【表】的列表,则单击左侧窗格的按钮,在弹出的下拉列表中选择【表(B)】,然后,双击打开链接表tblCodeyg,录入一些测试数据——为了更好地学习,在学习的过程中,录入的测试数据,最好与本教程中录入的测试数据保持一致。
录入完成之后,如下图所示:
接下来,关闭tblCodeyg,然后双击打开tblBxmx表,录入一些测试数据(lbID和ygID字段通过点选下拉列表来完成录入),如下图所示:
需要强调的是,按照原则,是严禁用户直接往表中录入数据的,但我们为了表述的方便,就暂且录入一些数据——需要值得注意的是,手工录入,因为缺少输入的辅助手段,也缺少一些相应的约束措施,因此,很容易出错,因而在录入的过程中,请严格按照遵守表设计说明书(第3课)中所提到的全部规范,比如,编号字段的规则(报销编号的编号规则是:首字母M+年份4位+月份2位+4位递增流水号)——如若录入的数据,不符合表设计说明书的规则,由于表中字段的【字段属性】中的约束仍然有效,因此,系统可能会报错,导致无法完成正常的录入(表的属性部分,只能执行表设计说明书的部分基本约束,还有一些约束,需要借助窗体的控件或相关代码来完成)。
此外,还有一点需要说明——对于当前的录入,每一个表的首个编号字段,固然是需要手工来填写的,但在开发完成之后,该编号字段将交由系统托管,所以,这项繁琐的工作,并不再需要人工来干预,所以,毋须为此多生疑虑。
当前,我们是在链接表中录入数据的,为了检验链接表的效果,录入完成之后,可以将当前已经打开的【Main.mdb】关闭,然后再打开【Data.mdb】文件,一一检查刚才录入数据的2个表,可以看到,刚才录入的数据已经被同步过来了,如下图所示:
如上图所示,我们可以发现,有一个现象,好像有些异常——那就是tblBxmx表中的lbID和ygID字段,存储的好像并不是编号,而是我们所点选的选项值,如此一来,好像完全违背了我们先前反复强调,并加以详细解说的设计目标,也不符合表设计说明书的规范——为什么这么说呢?
比如,lbID字段,我们知道,其【字段大小】是3个字符,而其中的一个值,比如电话费,三个中文汉字,按照常识,一个中文汉字的长度是2个字符(字母和数字都是1个字符),那么,电话费这三个汉字要想存储在表格中,其对应的【字段大小】,最小也不能低于6个字符,但是现在却存储在一个【字段大小】只有3字符的字段中,这不是很奇怪么?ygID字段也是如此,其【字段大小】也是3字符,其中任意一个,即便只有2个中文汉字的姓名也是不能容纳的。
其实,这种表面看起来的异常,只是假象——实际上,这两列数据,真正存储的数据,都是货真价实的编号,而并非实际的中文字符,为了还原其本来的面目,请按以下的方法操作:
关闭当前已经打开的tblBxmx表,然后点选tblBxmx表,然后,单击鼠标右键,选择【设计视图(D)】命令,或者再单击工具栏上的按钮,然后选择【设计视图(D)】命令,如下图所示:
执行了【设计视图(D)】命令之后,就可以进入tblBxmx表的设计视图,接下来,我们选中lbID字段,然后,将其【字段属性】由默认的【常规】选项卡,切换到【查阅】选项卡——在第5课中,我们已经很熟悉这个位置了。接下来,现在我们将【显示控件】由组合框再改回文本框,然后,ygID字段,也同样如此操作,完成之后,保存表设计,然后关闭tblBxmx表,并再次双击打开tblBxmx表,则如下图所示:
进行到这里,真相就大白于天下了,先前这两列,显示为中文字符,那是因为表在打开的时候,就已经根据字段的【字段属性】中【查阅】选项卡的属性设置,执行了相应的计算,所以,计算完成之后,这两列实际上显示的都是编号字段所对应的实质性内容(类别名称和员工姓名),这样就能提高表的可读性,不然,如上图一样的表,可读性极差,其中的数据,完全让人不知所云——这也是使用组合框的优势所在——这是通过表的【字段属性】设置来完成的——事实上,这个功能,通常是由【查询】这个数据库对象来完成的,而配置字段的【字段属性】中【查阅】选项卡的相关属性值,与建立一个比较简单的查询的工作,几乎也是完全一样的,接下来,我们就来讲述查询的创建。
第一个查询的设计与创建
在前面一节的课程中,我们已经修改了tblBxmx表中lbID和ygID字段的【字段属性】,即将【查阅选项卡】中的【显示控件】由组合框改回文本框——为了本课讲述的方便,我们暂时保持这样的设置——接下来,我们关闭【Data.mdb】文件,然后再打开【Main.mdb】文件,开始讲述查询的创建。
首先,我们要明白什么是查询——比如刚才所看到的tblBxmx表,在未启用【字段属性】中【查阅】选项卡的相关属性的情况下,ygID字段(员工编号)和lbID字段(类别编号),都是一些让人难以阅读的编号,如若是以这样的数据,直接展示给前台用户,那是极不友好的,甚至难以使用,因此,我们要进行一些数据的整合的工作——也就是说,要建立查询,通过计算,将不友好的、难以阅读的编号字段,替换成比较友好的,可以直接阅读的相关内容,这就是查询最基本的功能——就当前的情况的来说,就是将ygID字段(员工编号)和lbID字段(类别编号)的编号,替换成可以直观理解的员工姓名和类别名称。
接下来,我们将介绍如何通过查询的建设,来实现上述的设计目标。
首先,在已经打开的【Main.mdb】数据库文件中(按住Shift键打开),单击左侧窗格的按钮,在弹出的下拉列表中选择【查询(Q)】,则如下图所示:
现在,我们可以看到,当前的数据库中,尚未建立任何的查询,接下来,我们切换到【创建】工作区,然后单击【查询设计】按钮,则如下图所示:
对于熟悉Access 2003的读者来说,这些操作路径可能有些陌生,可并不牵涉到什么实质性的技术问题,所以,适应一下,就可以很快习惯的。
我们在执行了【查询设计】命令之后,就直接开启了一个新的查询的创建,并进入其设计视图,如下图所示:
类似的界面,我们已经在第4课中见过了,无非是激活这个界面的入手处有所不同——接下来,我们按住键盘上的Ctrl键,然后依次点选tblBxmx、tblCodelb、tblCodeyg,然后再单击【添加(A)】按钮,将当前的3个表添加到查询的设计区域,接下来,关闭【显示表】对话框,则如下图所示:
我们注意到,当表添加完成之后,系统已经自动地建立了关联——这种智能关联,很清晰地勾勒出了不同的表之间的结构。接下来,我们依次把tblBxmx表的mxID、bxrq,tblCode表的lbmc,tblCodeyg表的ygxm,tblBxmx表的bxje、bxzy、czsj添加到设计窗格中,完成之后,如下图所示:
在第4课中,我们建立类似的查询只是为了生成我们所需要的SQL代码,所以,当时的查询设计,并没有保存,现在则有所不同——接下来,单击按钮,或者依次单击Office按钮——【保存(S)】命令,则会弹出【另存为】对话框,如下图所示:
接下来,删除默认的名称,然后将该查询命名为:qryBxmx,然后,单击【确认】按钮,完成保存——这样,一个很实用的查询就创建完毕了,这个时候,我们可以注意到,左侧窗格中已经出现了我们刚才新建的查询对象,如下图所示:
接下来,我们选中查询列表中的qryBxmx,然后单击鼠标右键,在弹出的右键菜单中选择【打开(O)】命令,或者单击工具栏上的按钮,选择其中的【数据表视图(H)】命令,则如下图所示:
执行了【数据表视图(H)】命令之后,如下图所示:
这个时候,我们就可以发现,查询建立完成之后,实际的浏览效果,实际上和早先启用了字段的【字段属性】的【查阅】选项卡相关属性的tblBxmx表几乎是一样,但是,也不能就因此认为查询是可以被第4课中的相关【查阅】属性所代替的——我们要知道,刚才所建立的,只是最简单的查询——当我们需要建立一些比较复杂的查询,比如联合查询,比如附带比较复杂计算条件(比如分组、过滤、汇总)的选择查询的时候,这就不是表的字段的【查阅】选项卡中的相关属性所附带的那一点功能所能完成的了。
当然,表中字段的【字段属性】还是很重要的,比如,以tblBxmx表为例,如若其字段的【字段属性】中【常规】选项卡的【标题】属性没有配置,则浏览起来,如下图所示(可以先将【Data.mdb】文件中的tblBxmx表中【字段属性】中【常规】选项卡的【标题】属性先行全部删除,以达到以下的浏览效果):
如上图所示,这样的显示效果,比刚才更加难以阅读,除了设计者和开发者,普通用户很难知道每一列是何意——比如bxzy数据列,很难知道这一列究竟是代表什么,由此可见,每一个对象都有每一个对象的特征和重要性,因此,我们需要同等重视,切不可顾此失彼。
好了,由于本教程只是初级教程,所以,查询的设计,就讲述的这里,接下来,恢复所有的配置,以便为为下一课做好准备。需要恢复的主要有两项:
第一项:恢复tblBxmx表的【字段属性】中【常规】选项卡的【标题】属性的值;
第二项:恢复tblBxmx表的【字段属性】中【查阅】选项卡中相关属性的设置。
接下来,我们就要学习窗体的制作,本来这是整个数据库系统开发过程中,难度最大,耗时最多的环节,但是因为一键生成功能的出现,这个过程将变的快速而且简单。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)