Access2003数据库快速开发教程(九)
时 间:2013-10-30 21:54:25
作 者:竹笛 ID:8 城市:上海 QQ:2851379730
摘 要:学习要求:本节预计学习课时为0.5小时,重点是:学会创建一个查询。
正 文:
6 查询的设计
学习说明
在前面的课程中,为了讲述的方便,我们已经往tblCodelb表中手工录入了一些测试数据,现在,为了以后的课程讲述的方便,我们仍然需要录入一些数据——接下来,请按住【Shift】键,双击打开【Main.mdb】文件,然后单击【对象】区的 按钮,然后,双击打开链接表tblCodeyg,录入一些测试数据——为了更好地学习,在学习的过程中,录入的测试数据,最好与本教程中录入的测试数据保持一致。
录入完成之后,如下图所示:
关闭tblCodeyg,然后双击打开tblBxmx表,录入一些测试数据(lbID和ygID字段通过点选下拉列表来完成录入),如下图所示:
需要再次强调的是,按照原则,是严禁用户直接在表中录入数据的,但我们为了表述的方便,就暂且录入一些数据——需要值得注意的是,手工录入,因为缺少输入的辅助手段,也缺少一些相应的约束措施,因此,很容易出错,因而在录入的过程中,请严格按照遵守表设计说明书(第3课)中所提到的全部规范,比如,编号字段的规则(报销编号的编号规则是:首字母M+年份4位+月份2位+4位递增流水号)——如若录入的数据,不符合表设计说明书的规则,由于表中字段的【字段属性】中的约束仍然有效,因此,系统可能会报错,导致无法完成正常的录入(表的属性只能执行表设计说明书的部分基本约束,还有一些约束,需要借助窗体的控件或相关代码来完成)。
此外,还有一点需要说明——对于当前的录入,每一个表的首个编号字段,固然是需要手工来填写的,但在开发完成之后,该编号字段将交由系统托管,所以,这项繁琐的工作,并不再需要人工来干预,所以,毋须为此多生疑虑。
当前,我们是在链接表中录入数据的,为了检验链接表的效果,录入完成之后,可以将当前已经打开的【Main.mdb】关闭,然后再打开【Data.mdb】文件,一一检查刚才录入数据的2个表,可以看到,刚才录入的数据已经被同步过来了,如下图所示:
如上图所示,我们可以发现,有一个现象,好像有些异常——那就是tblBxmx表中的lbID和ygID字段,存储的好像并不是编号,而是我们所点选的选项值,如此一来,好像完全违背了我们先前反复强调,并加以详细解说的设计目标,也不符合表设计说明书的规范——为什么这么说呢?
比如,lbmc字段,我们知道,其【字段大小】是3个字符,而其中的一个值,比如电话费,三个中文汉字,按照常识,一个中文汉字的长度是2个字符(字母和数字都是1个字符),那么,电话费这三个汉字要想存储在表格中,其对应的【字段大小】,最小也不能低于6个字符,但是现在却存储在一个【字段大小】只有3字符的字段中,这不是很奇怪么?ygID字段也是如此,其【字段大小】也是3字符,其中任意一个,即便只有2个中文汉字的姓名也是不能容纳的。
其实,这种表面看起来的异常,只是假象——实际上,这两列数据,真正存储的数据,都是货真价实的编号,而并非实际的中文字符,为了还原其本来的面目,请按以下的方法操作:
关闭当前已经打开的tblBxmx表,然后点选tblBxmx表,再单击 按钮,如下图所示:
然后,就进入了tblBxmx表的设计视图,接下来,我们选中lbID字段,然后将其【字段属性】由默认的【常规】选项卡,切换到【查阅】选项卡——在第5课中,我们已经很熟悉这个位置了。接下来,现在我们将【显示控件】由组合框再改回文本框,然后,ygID字段,也同样如此操作,完成之后,保存表设计,然后关闭tblBxmx表,并再次双击打开tblBxmx表,则如下图所示:
进行到这里,真相就大白于天下了,先前这两列,显示为中文字符,那是因为表在打开的时候,就已经根据字段的【字段属性】中【查阅】选项卡的属性设置,执行了相应的计算,所以,计算完成之后,这两列实际上显示的都是编号字段所对应的实质性内容(类别名称和员工姓名),这样就能提高表的可读性,不然,如上图一样的表,可读性极差,其中的数据,完全让人不知所云——这也是使用组合框的优势所在——这是通过表的【字段属性】设置来完成的——事实上,这个功能,通常是由【查询】这个数据库对象来完成的,而配置字段的【字段属性】中【查阅】选项卡的相关属性值,与建立一个比较简单的查询的工作,几乎也是完全一样的,接下来,我们就来讲述查询的创建。
第一个查询的设计与创建
在前面一节的课程中,我们已经修改了tblBxmx表中lbID和ygID字段的【字段属性】, 即将【显示控件】由组合框改回文本框——为了本课讲述的方便,我们暂时保持这样的设置——接下来,我们关闭【Data.mdb】文件,然后再打开【Main.mdb】文件,开始讲述查询的创建。
首先,我们要明白什么是查询——比如刚才所看到的tblBxmx表,在未启用【字段属性】中【查阅】选项卡的相关属性的情况下,ygID字段(员工编号)和lbID字段(类别编号),都是一些让人难以阅读的编号,如若是以这样的数据,直接展示给前台用户,那极不友好,甚至难以使用,因此,我们要进行一些数据整合的工作——也就是说,要建立查询,通过计算,将不友好的、难以阅读的编号字段,替换成比较友好的,可以直接阅读的相应的字段,这就是查询最基本的功能——就当前的情况的来说,就是将ygID字段(员工编号)和lbID字段(类别编号)的编号,替换成可以直观理解的员工姓名和类别名称。
接下来,我们将介绍如何通过查询的建设,来实现上述的设计目标。
首先,在已经打开的【Main.mdb】数据库文件中(按住Shift键打开),单击 按钮,则如下图所示:
然后,单击选择 ,然后再选择 按钮,或者双击 按钮,则如下图所示:
这个界面,我们已经在第4课中见过了,无非是激活这个界面的入手处有所不同——接下来,我们将表tblBxmx、tblCodelb、tblCodeyg依次添加,然后关闭【显示表】对话框,则如下图所示:
我们注意到,当表添加完成之后,系统已经自动地建立了关联——这种智能关联,很清晰地勾勒出了数据表的结构。接下来,我们依次把tblBxmx表的mxID、bxrq,tblCode表的lbmc,tblCodeyg表的ygxm,tblBxmx表的bxje、bxzy、czsj添加到设计窗格中,完成之后,如下图所示:
在第4课中,我们建立类似的查询只是为了生成我们所需要的SQL代码,所以,当时的查询设计,并没有保存,现在则有所不同——接下来,单击工具栏上的按钮,或者依次单击【文件(F)】——【保存为(S)】按钮,则会弹出【另存为】对话框,如下图所示:
接下来,删除默认的名称,然后将该查询命名为:qryBxmx,然后单击【确认】按钮,完成保存——这样,一个很实用的查询就创建完毕了,然后单击工具栏上 按钮,在下拉菜单中选择【数据表视图(S)】,如下图所示:
然后,切换到数据表视图,如下图所示:
这个时候,我们就可以发现,查询建立完成之后,实际的浏览效果,实际上和早先启用了字段的【字段属性】的【查阅】选项卡相关属性的tblBxmx表几乎是一样,但是,也不能就因此认为查询是可以被第4课中的相关【查阅】属性所代替的——我们要知道,刚才所建立的,只是最简单的查询——当我们需要建立一些比较复杂的查询,比如联合查询,比如附带比较复杂计算条件(比如分组、过滤、汇总)的选择查询的时候,这就不是表的字段的【查阅】选项卡中的相关属性所附带的那一点功能所能完成的了。
当然,表中字段的【字段属性】还是很重要的,比如,以tblBxmx表为例,如若其字段的【字段属性】中【常规】选项卡的【标题】属性没有配置,则浏览起来,如下图所示(可以先将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.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)