Access2010数据库快速开发案例教程(二).pdf
-
资源ID:75152813
资源大小:6.48MB
全文页数:34页
- 资源格式: PDF
下载积分:16金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Access2010数据库快速开发案例教程(二).pdf
Access培训基础教程-报销管理系统第 1 页/共 34 页5.1 建表与相关字段属性的解说学习要求:本节预计学习课时为1 小时,重点是:a.新建表的操作;b.设置主键;c.理解字段的各个属性。学习说明我们都知道,无论是多么强大、多么先进的数据库,都是基于存储在表中的数据来运行的,因此,表的设计和建立就显得特别重要,这也是数据库中最基础、最重要的组成部分之一如若把数据库比作一个仓库的话,那么,表的设计,就好比这个仓库的仓位设计,而表的建立,就好比是仓位建设的施工因此,如若仓库的仓位的设计和施工出了问题,毫无疑问,必然会给这个仓库的管理带来极大的不便,因此,希望大家能注重基本功的概念和练习,只有牢固的基本功,才能让我们走得更远、走得更好。建表与相关字段属性的解说在前面的课程中,我们已经讲过表的设计,那么,在这一节中,我们就来讲表的施工,也就是表的建立,所谓表的建立,就是将先前对应的表的设计图,在当前的对应的数据库文件中加以实现。我们将以实际的例子加以说明,比如tblCodeyg 这个表,它的表设计如下:那么,我们应该如何实现呢?首先,进入我们先前存储项目文件的C 盘下的 BXMIS 目录,双击鼠标左键打开【Data.mdb】文件,则如下图所示:Access培训基础教程-报销管理系统第 2 页/共 34 页对于熟悉 Access 2003 的人来说,这个界面可能有些陌生,但是原理都是一样的此时,我们注意到,当前默认显示的是的栏目,接下来点选后面的小倒黑三角,则如下图所示:Access培训基础教程-报销管理系统第 3 页/共 34 页接下来,我们选中【表(B)】选项,则如下图所示:如上图所示,在【表】栏目下,我们会发现,已经有了8 个名称以Sys 为前缀的表的存在,需要特别说明的是,这些表并非是Access 本身就有的,而是盟威软件快速开发平台的系统表,也就是说,除非是教程的指引,这些表是不允许我们手工修改和删除的如若擅自改动或删除这些平台系统表,那么,可能会导致基于平台运行的各类系统出现各种难以预料的故障。接下来,我们正式开始建表,请依次点选【创建】【表设计】,如下图所示:Access培训基础教程-报销管理系统第 4 页/共 34 页当我们点选【表设计】,打开表的设计视图之后,如下图所示:在当前的设计视图中,左侧窗格的右侧有一个按钮(该按钮名叫百叶窗开关按钮),通过这个按钮,即可以控制左侧窗格的开关,我们可以根据自己的喜好,来选择开启或关闭右侧窗格,在这里,我们就暂且关闭左侧窗格关闭完成之后,如下图所示:Access培训基础教程-报销管理系统第 5 页/共 34 页如上图所示,表的设计界面,上半部分是【字段名称】、【数据类型】和【说明】(【字段】的【说明】,类似备注),下半部分是【字段属性】界面,默认尚未被激活,当在【字段名称】列中输入字段名称,并将鼠标光标移到【数据类型】列之后(【数据类型】的默认值为文本,需要根据实际的需要进行调整),相应的【字段属性】就会被激活,如下图所示:为了便于表的建立,现在就将表设计说明书中的项目和表设计视图中的对象(列或属性)的对应关系以简明的方式加以说明,如下表所示:设计说明书中的项目设计界面中的对象(列或属性)备注字段名字段名称标题名称数据类型字段类型字段属性-标题字段大小字段属性-字段大小必填字段属性-必需是或否,除主键外,默认为否位数字段属性-小数点位数适用于数据类型为货币和数字的字段说明说明需要特别说明的是,虽然【字段属性】是从属于字段的,但是却与【数据类型】密切相关,因此,【数据类型】不同,相对应的字段的【字段属性】也有差异,比如,在字段的【数据类型】为文本的情况下,【字段属性】中就没有小数点位数的属性设置项这也是为什么在没有选择【数据类型】以前,【字段属性】不被激活的根本原因在【数据类型】没有确定之前,由于不同的【数据类型】,所拥有的【字段属性】也有所不同,因此,系统根本就无从判断需要显示哪些属性项。下面,我们就将ygID 字段按表设计说明书的要求建设完毕,如下图所示:Access培训基础教程-报销管理系统第 6 页/共 34 页需要值得说明的是,本教程中没有提到的【字段属性】的相关设置项,请不要随意更改除非您对您的更改所带来的实际影响和显示效果非常明白接下来,按照表设计说明书的要求,完成剩下字段的建立,如下图所示:此时,还有一项工作没有完成,那就是设置主键,所谓主键,就是一条记录的唯一标识符,这就好比在户籍系统中,我们的身份证号是我们身份的唯一标识符一样,因此,一个字段一旦被标识为主键,那么,这个字段的值,便是不允许出现重复的这就如同在户籍系统中,身份证号是不允许出现重复Access培训基础教程-报销管理系统第 7 页/共 34 页是一样的,接下来,我们就开始设置主键先在表设计视图中选择ygID 字段,或者将鼠标光标移回ygID字段那一行内的任意位置,然后再点选工具栏上的按钮,或右击鼠标右键,选择其中的命令,其后,ygID 字段前记录选定器的便多了一个标志,这便是主键字段的标志。正是因为一个主键字段是不允许出现重复值,所以,当一个字段被设置为主键后,它的字段属性也会同时发生改变,那就是字段属性中的【索引】的值将从【无】自动变更为【有(无重复)】,并且,这个值是不允许更改的,除非取消这个字段的主键设置取消主键,也就是删除附加在这个字段上的主键属性,方法也很简单,在已经设置好主键的字段上再次点选按钮,或单击鼠标右键,在弹出的右键才菜单上选择命令,就可以删除当前字段的主键属性(并不会连带删除当前的字段)。如若已经设置好了主键,则如下图所示:好了,字段的设计就告一段落,接下来,我们就可以保存已完成的工作依次点选【文件】【保存】命令,或单击左上角右侧的按钮,如下图所示:Access培训基础教程-报销管理系统第 8 页/共 34 页如上图所示,单击保存按钮之后,如若没有事先保存,则会弹出【另存为】对话框,如下图所示:由于在表设计说明书中,该表的表名为:tblCodeyg,因此,接下来,删除【表名称(N)】下的文本框中的默认值:表1,然后输入表设计说明书中的对应的表名:tblCodeyg。需要强调的是,为了以后编写代码以及可能的后续开发的便利,表名最好以英文的形式(或字母的形式,可以包含数字和下划线)Access培训基础教程-报销管理系统第 9 页/共 34 页来命名。输入完毕,单击确认按钮,我们注意到,此时的表的设计区域的顶部已经发生了明显的变化,已经由先前的变为当前的,如下图所示:如上图所示,这其中的便是刚才输入的表的名称。这个时候,我们也就发现,先前截图中一再出现的,便是系统指定的默认名称。现在,该表的设计工作就已经全部完成了,首先,我们先通过单击按钮,恢复左侧窗格的显示,可以很清晰地看到,我们刚才建的表已经出现在表的列表窗格中,如下图所示:Access培训基础教程-报销管理系统第 10 页/共 34页接下来,单击表名称右侧的按钮,退出 tblCodeyg 表的设计视图如若单击标题栏右侧的按钮,则会退出整个数据库,因此,不要点错了位置。接下来,我们便可以按照同样的方法,完成表设计说明书中tblCodelb表和 tblBxmx 的建立,在这里,需要值得说明的是tblBxmx 表的 czsj字段,按照表设计说明书的要求,这个字段是不需要手工输入的,当前的操作时间,可以从操作系统中直接提取,所以,我们需要借助一个系统函数来实现这个设计目标,这就需要使用Now()函数,该函数可以在录入当前记录的时候,自动提取当前的操作系统时间插入对应的表格中。在这里,需要再次强调的是,由于该函数直接从操作系统中提取时间,因此,如若操作系统时间错误,那么,该函数也必将插入错误的系统时间,因此,请确保您当前使用的操作系统时间没有错误由于该项操作涉及操作系统的控制面板,而操作系统的课程,并非Access 的课程,因此,请大家参阅相关教程。那么,既然可以使用系统函数从操作系统中自动提取时间,那么,在实际的表的设计中,应该如何实现这个设计目标呢?或许已经有人注意到,在字段的属性中,有一个默认值的属性,或者可以把该系统函数写入默认值属性来达到实现此功能的目的完全正确,就是这样当然,这也不是唯一的实现方式,比如,我们也可以在后续的窗体建设中,再来实现此设计目标。当前,我们就在当前环节实现此设计目标,首先,打开tblBxmx 表的设计视图,定位到czsj字段,然后【字段属性】的在默认值一栏中,输入以下字符:=Now(),如下图所示:需要值得注意的是,在这个位置,尽管我们可以借助系统函数来实现自动提取操作系统当前时间,来实现自动输入的目的,但是,在当前的表中,我们仍然可以在表中手工修改此时间,当然,在系统正式投入运行之后,手工直接向表中写入数据,是不被允许的,所以,不用担心系统自动提取的数据会被Access培训基础教程-报销管理系统第 11页/共 34 页修改而违背了我们设计的初衷,当然,在后续的窗体设计中,尽管也可以提供修改此时间的界面,但我们可以在设计的环节,就可以禁用此功能,因此,可以确保此设计目标的实现。当然,这是后续的课程所需要讲述的内容,所以,其中的细节,在这里就不过多阐述了。5.2 文本框、列表框与组合框学习要求:本节预计学习课时为0.5 小时,重点是:a.字段属性中文本框、列表框、组合框;b.如何设置组合框的行来源。为了后续讲述的方便,我们先遵照表设计说明书的标准,输入一些测试数据首先,我们选中tblCodelb 表,然后,单击鼠标右键,选择命令,或直接tblCodelb 上双击鼠标左键,都可以进入表的【数据表视图】,如下图所示:再次强调,在正常情况下,是不允许用户直接在表中输入数据的,但我们这里为了教学的方便,先往表中录入几行试验数据(注意类别编号的录入根据表设计的要求,必须是字母L+2 位数字,否则在后续学习中,会出现问题),输入完成之后,如下图所示:Access培训基础教程-报销管理系统第 12 页/共 34页好了,测试数据,已经输入完毕,现在可以关闭当前的tblCodelb 表,继续下一步的分析。当前的数据库中,已经有了三个用户建立的表我们很快就可以发现,当前三个表的主体,其实是 tblBxmx 表,至于tblCodeyg 表和 tblCodelb 表,其实都是为tblBxmx 服务的,通过tblBxmx 表中的 lbID 字段和 ygID 字段关联,为tblBxmx 提供选项值,以节省输入时间,避免重复的手工输入。首先,请再次打开tblBxmx 表的设计视图,我们会发现,几乎所有的字段的【字段属性】,都有两个选项卡,一个是【常规】选项卡,是一个【查阅】选项卡,如下图所示:Access培训基础教程-报销管理系统第 13 页/共 34页这个时候,我们就会明白,我们先前涉及的所有的【字段属性】,都是从属于常规选项卡的,而对于【查阅】选项卡,几乎没有涉及,那么,我们先定位到lbID 字段,然后再单击【查阅】选项卡,如下图所示:我们发现,默认情况下,【查阅】选项卡,只有一个属性,那就是【显示控件】,而当前显示控制的默认的值是文本框,所谓文本框,就是只能提供一个可输入方框的控件接触过网络和计算机的,一般都知道,我们在录入数据,尤其是城市、性别、类别之类有明确可选值的数据的时候,都喜欢在系统所提供的下拉列表中直接点选相应的选项,但是,这个文本框却只能提供录入方框,而不能同时提供可选择的下拉列表那么,如若能提供可选择的下拉列表,有什么好处呢?那就是,通过点选下拉列表的值,一方面,能显著地提高输入的效率,另一方面,输入的准确率(防止笔误)也可以一并提高,显然,好处是显而易见的。那么,如何才能让【显示控件】(即显示可输入方框的控件)提供可选择下拉可选列表的功能呢?接下来我们单击显示控件的输入区,然后点选由于激活输入区而随之出现的按钮,则如下图所示:Access培训基础教程-报销管理系统第 14 页/共 34页这个时候,我们就可以发现,原来【显示控件】已经提供了3 个选项,分别是文本框、列表框、组合框文本框,我们已经解释了,那么,列表框是什么呢?列表框,也就是说,在输入区域被激活之后,会根据已指定的数据源(也就是可选项的数据来源)的当前数据提供一个可选的值列表这个列表是动态的,会根据数据源中数据的变化而变化,但在某一个静止的时间点上,又是相对的静态。比如,比如有一个体重类别的数据列,被其他表引用,作为其某一个字段的数据源,如若这个体重类别的数据列中当前苗条、正常两行数据,那么,引用其作数据源的控件的下拉列表中,也只有苗条和正常两个选项如若体重类别数据列中,又添加了偏瘦和超重,那么,引用其作数据源的控件的下拉列表中,也会动态地增加这两个选项。在这里,需要强调的是,在【显示控件】被指定为列表框之后,一切在可选值之外的输入,都是不被允许的,也就是说,我们只能从数据源提供的值列表中来选择输入,而不再被允许输入以外的数据,因此,采用列表框,在提高输入效率的同时,也可以精确地提高输入的准确率,防止非法数值的出现,比如,在报销数据库的场合中,则可以禁止没有报销权限的人员的报销单据的录入,便于企业的内部管理,以及提高企业内控的安全性。那么,组合框呢?已经解释了文本框和列表框,那么,组合框就很好说明了所谓组合框,就是文本框和列表框的组合,也就是说,即可以自由输入数据,也可以从列表中选择,显得比较自由针对一些安全性不是很高,并且,可以提供可选项数据的场合,可以采用组合框。在此,需要说明的是,组合框也可以实现列表框的功能如何实现呢?我们要知道,无论是任何对象,包括字段、控件、窗体和报表在内,都是通过其一系列的内部属性的设置来控制其外在的表现的形式组合框当然也不例外,在组合框的属性中,有一个【限于列表】的属性,默认是不限于列表,即可以输入列表之外的值,如若我们将其修改为是,即让其限于列表,那么,当前的组合框也不允许录入下拉列表选项以外的数据,其效果也就和列表框完全一致。Access培训基础教程-报销管理系统第 15 页/共 34页在当前的场合,由于报销类别和员工姓名,都是比较重要的数据,因此,看起来,选用列表框,看起来是最为简便的其实不然,在这里,我们选择组合框,其后,如下图所示:如上图所示,当我们选择组合框之后,从属于组合框的一系列属性,就立即会被激活,并显示出来默认的【行来源类型】(也就前面提到的数据源的种类,也就是可选项的数据来源对象的种类)是表/查询,而我们前面已经提到,tblCodeyg表和 tblCodelb表,都是为 tblBxmx 表服务的,而 tblBxmx表中 lbID 字段的可选项则是来源于tblCodelb表,那么,在这里,显然应该选择默认值,也就是行来源的类型应当是:表/查询。已经指定了【行来源类型】(也就是数据源对象的种类),那么,下一步就应当指定具体的数据源了当前,也就是需要指定【行来源】,【表/查询】类型的数据源的指定,有两种方式:第一种方式,可以直接选择表或查询(需要满足一定的前提条件),另一种方式,可以通过SQL代码来实现的。当前,我们将先通过第二种方式来进行在以后的窗体开发的环节,再来讲述第一种方式的设置和相关细节。但是,通过第二种方式,也有两种操作方式,第一种,是直接编写SQL代码,第二种,是通过SQL语句生成器来自动生成SQL代码由于考虑SQL语句对部分的初学者,可能有那么的一点难度,因此,我们可以通过Access 提供的 SQL语句生成器来自动生成我们所需要的SQL代码,那么,这个自动生成功能如何使用呢?我们先激活【行来源】的输入区(所谓激活,就是鼠标单击该输入方框内的任意位置),就会发现,在【行来源】输入方框外的右侧,出现了一个按钮,如下图所示:Access培训基础教程-报销管理系统第 16 页/共 34页接下来,我们单击按钮,则如下图所示:Access培训基础教程-报销管理系统第 17 页/共 34页就这样,我们通过单击按钮,启动了【查询生成器】,可以用以生成我们所需的SQL语句首先,我们要在弹出的【显示表】对话框中,选择我们当前的控件所需要的数据,由哪个表来提供,显然,应当选择tblCodelb 表,如下图所示:然后,我们单击【添加(A)】按钮,就可以将表添加到查询设计界面,接下来,通过单击【显示表】对话框中【关闭(C)】按钮,关闭【显示表】对话框,然后,如下图所示:Access培训基础教程-报销管理系统第 18 页/共 34页当前的这个设计界面,上半部分是表和查询的显示区域,下半部分是用以生成SQL语句(或查询)的设计区域,接下来,我们先选中lbID 字段,如下图所示:然后,双击lbID 字段,lbID 字段就会被自动地放置于下半部分的设计窗格中,如下图所示:Access培训基础教程-报销管理系统第 19 页/共 34页当然,也可以通过拖拽的方式即先行点选lbID 字段,然后,按住鼠标左键拖拽,将该字段拖拽到适当的窗格上方时,再松开鼠标左键,也可以达到同样的目的。同理,我们将lbmc 字段,也拖放到设计窗格,如下图所示:由于当前的查询设计,即是为了配合生成以tblCodelb 表中两个字段为主体的查询,进行到这里,两个字段都已经被拖放到设计窗格中去了,也就是说,我们已经完成了全部的设计工作,不用再做进一Access培训基础教程-报销管理系统第 20 页/共 34页步的处理,更不需要再进行排序、统计或写相应的表达式这种查询,可以说,是最为简单的查询,简单到不能再简单的地步。接下来,我们单击设计区域顶端右侧的按钮,就会弹出一个对话框,如下图所示:这个对话框的意思就是说是否要生成SQL 语句,并填写到【行来源】的输入方框(也就是行来源的属性值)中去这正是我们建立查询的目的,因此,当然要单击【是(Y)】按钮加以确认,然后,则如下图所示:Access培训基础教程-报销管理系统第 21 页/共 34页很显然,我们所需要的SQL 代码,已经被自动填好了由系统所生成的SQL 语句,如下:SELECT tblCodelb.lbID,tblCodelb.lbmc FROM tblCodelb 这一条 SQL 代码的意思是说,返回(即 SELECT关键字的作用)来源于(即 FROM 关键字的作用)tblCodelb 表中的 lbID 和 lbmc 字段的值的列表。对于学过SQL 语言的来说,以上的语句,几乎可以说是最为简单的SQL 代码如若先前没有学过 SQL 语句,以后再用到类似到语句的时候,只需要将其中的表名和字段名称替换成对应的表名和字段名称即可。接下来,我们再看【绑定列】属性,默认值是1,这个属性的意思就是说,将从【行来源】中返回的数据列表结果集的哪一列中的数值保存到表中我们刚才设计的查询,毫无疑问,返回的结果集,只有 2 列,第一列是lbID(类别编号),第二列是lbmc(类别名称)而我们当前的这个属性是归属于 tblBxmx 表的 lbID 的字段,其【字段大小】只有3,与第一列相匹配,因此,显然我们应该将第一列的相应对的值,保存到表中去,因此,保持默认值即可,无需修改。这个时候,我们不妨再理一下思路也就是说,我们在激活下拉列表,选择相应值以便完成输入的时候,当然是希望下拉列表中的选项,都是我们所容易理解的,比如,我们可以再次打开tblCodelb表,查看刚才输入的测试数据,这个时候,我们就会发现,第一列的数据是很难理解的,单单看第一列数据,我们很难知道L01 代表什么,L02 代表什么,但是与第一列所对应的第二列,则是一目了然的电话费、资料费所代表的含义,我们都能理解不妨再以当前的tblCodelb 表来举例既然L01代表电话费,L02 代表住宿费,那么,我们当然希望点选的时候,看到的是第二列的数据,而保存在tblBxmx 表中的,却是第1 列的数据不然,我们还需要记忆类别编号和类别名称之间的对应关系这样做岂不是太辛苦了?比如,在现实中,虽然我们身份的唯一标识是身份证号(类似于这里的类别编号,同样不允许重复),但是,平常我们生活之中彼此相称,却是以姓名或别名、昵称、字号相称,而不是以身份证号相称但是,我们要查验一个人的真正的身份的时候,却通常是以身份证号来查验,而不是以平常所称的姓名来查验。以上的这个道理,与当前的tblBxmx 表的 lbmc 字段的道理是一样的。也正是因为这个道理,所以,我们才在查询设计的时候选择了两列数据,第 2 列数据是显示给前台界面的操作员看的,就好比我们平常以姓名或别名、昵称、字号相称,而第 1 列的数据,相当于身份证号,则是需要保存到表格中去的(将被选择的选项所对应的第1 列的值保存到表中,比如,如若选择是电话费,则将所对应的L01 保存到表格中去)。因此,理想的设计便是,可供选择的列表值是友好的,而存储在数据库中的值却是唯一的、高效的,这也是我们为什么要保存第1 列的数据,而不是保存第2 列的原因当然,在表设计的时候,我们可以设计成保存第2 列的数据,但我们并没有那样去设计当然,在完成表设计之后的现在,也只能保存第1 列中的数据。为什么呢?这是因为类别名称或许不会出现的值,但是在实际案例中,有很多字段都会出现重复的值,比如姓名,因此,为了养成良好的习惯,我们这里遵循通用的设计原则。此外,即便是在tblCodelb 表中,类别名称不会出现重复,但是,如若我们在做表设计的时候,如若选择在tblBxmx 表的 lbmc 字段中保存来源于tblCodelb 表中第 2 列数据,比如,保存是电话费,而不是 L01,那么,如若以后类别名称有所调整那么,tblBxmx 表中凡是涉及到电话费的记录,都需要一一调整尽管我们有批量调整的办法,但是毕竟增加了一项工作而如若保存的是第1 列数据,比如,保存的是L01,那么,无论以后相对应的类别名称如何调整,tblBxmx 表的 lbID 字段的值都不用Access培训基础教程-报销管理系统第 22 页/共 34页做任何调整,比如,在现实中,无论我们如何更改姓名、昵称、字号,而我们的身份证号却是不变的,因此,只要确定了一个人的身份证号,这个人的姓名、昵称、字号无论如何变更,都可以将其锁定并找出来。lbID 因此,数据库的设计工作,虽然也是一项技术工作,但是在了解相关的技术细节的同时,也需要了解其相关的业务,不然,设计工作和实际的工作,可能会产生比较严重的脱节,与此同时,我们还要掌握相关的开发技巧,比如,刚才的这个设计尽量给前台用户提供便利,而把相关的计算隐藏在用户所觉察不到的后台。接下来,我们继续,下一个属性是【列数】,这里问的是我们需要由【数据源】返回的结果集其中的前几列前面讨论了那么多,当然知道是需要2 列,所以,这里由默认的1 更改为 2。下一个属性是【列标题】,所谓【列标题】,就是该字段的【字段属性】的【常规】选项卡的【标题】属性的值,在下拉列表弹出的时候,是否附带显示在下拉列表的顶端如若没有给该标题赋值,则直接显示相应的字段名称,在这里,也就是显示lbmc。通常来说,列标题,会在输入界面中,以标签的形式出现,因此,这里就没有必要重复出现了当然,这也根据需要来定,通常也是需要的,不排除某些特殊场合是需要的。下一个属性是【列宽】,我们知道,刚才填写【列数】属性的时候,就已经知道当前返回的结果集有两列,所以,这里应当分别设置两列的宽度前面已经分析过,最理想的情况是,提供的可选项是第 2 列的数据,而存储在数据库中的却是相对应的第1 列的编号,因此,点选的时候,是没有必要同时显示两列数据尽管可以这么做。再则,比如,电话费所对应的编号是什么,完全没有必要让普通用户知道完全可以将这些计算工作放在后台进行。因此,尽管我们选择了2 列,仍然可以通过技术手段将第1 列隐藏,即将其列宽设置为0cm,第 2列的列宽,根据当前的情况,设置为2cm 就可以了(可以根据需要适当调整),因此,这里应该这样填写:0cm;2cm需要值得注意的是,列宽属性中两个长度之间的分号必须是英文输入法下的分号,如若是误用了中文的分号,系统会报错的如若遇到系统报错,请不要疑惑,切换一下输入法即可。接下来,是【列表行数】属性,这个属性牵涉到整个下拉列表框的高度,默认为8 行的高度,在这里,我们可以将其调整为20 行如若可选值超过20 行,则会显示垂直滚动条。接下来是【列表宽度】前面的【列表行数】实际上是整个可选列表框高度的设置,而【列表高度】则是整个可选列表框的宽度的设置,通常保持默认的自动即可,当然,也可以去规定一个宽度当这里设置的宽度小于前面设置的总的【列宽】(所有字段累加的宽度即总的【列宽】),那么,将会显示出水平滚动条。最后就是前面提过的【限于列表】了,默认是否,这里应该修改为是。以上设置全部完成之后,如下图所示:Access培训基础教程-报销管理系统第 23 页/共 34页进行到这里,lbID的【字段属性】的相关设置工作就已经全部完成了,接下来,我们可以按照同样的原理和方法完成ygID 字段的【查阅】选项卡中相关属性的设置工作,完成之后,如下图所示:Access培训基础教程-报销管理系统第 24 页/共 34页接下来,我们可以通过单击按钮来保存表的设计进行到这里,表的建立工作就已经全部完成了。在这个过程中,我们可以发现,技术是一个方面,设计思路又是一个方面,只有完善的设计思路,再搭配比较娴熟的技术,才可以建立比较完善的系统,因此,在学习的过程中,一定注意设计思想的总结和提高对于善于领悟的人来说,设计思想的提高不仅仅可以带来数据库技术的改变,也必定可以给个人生活带来全方位的改变,为什么可以这样呢?因为各行各业,包括生活、工作、学习的基础和理论,本来就是相通的,所以才可以一以贯之,一通百通,因此,衷心地希望本教程能给大家带来不同凡响的体验和改变。5.3 链接表学习要求:本节预计学习课时为0.5 小时,重点是:a.手工创建链接表的操作;b.用快速开发平台创建链接表的操作。表的建立完成之后,接下来,就是表的链接工作。由于数据库的前台操作界面都存储在【Main.mdb】文件中,因此,鉴于基于Access 开发的数据库的特点,为了使数据库能正常运行,需要将存储数据的表链接到【Main.mdb】中,链接表的操作方法,有两种,一种是常规方法,一种是盟威软件快速开发平台所提供的方法,我们先来讲述常规的操作方法。链接表的常规方法首先,按住键盘上的Shift 键(不可以松开),双击鼠标左键打开【Main.mdb】文件(【Main.mdb】文件打开之后,方可松开Shift 键),如若操作没有失误,则如下图所示:Access培训基础教程-报销管理系统第 25 页/共 34页若是没有出现如上图一样的,或类似的界面,而是出现了如第4 课所示的平台登录界面,则意味着按住 Shift 键的操作失败或者是按的时间过晚,或是松的太早,或者在中间不小心松开过,这时,可以关闭当前的数据库(即平台),重新按住Shift 键再次打开。现在,我们就可以发现,对比第4 课已经学习过的内容,按住Shift 键和不按Shift 键,打开的【Main.mdb】文件之后显示的界面,完全不同,这是因为在不按住Shift 键的情况下,系统会运行盟威软件快速开发平台已经预设的自动运行程序,而这些程序的运行,将会将所有的软件设计和开发界面隐藏。因此,我们不妨这样定义按住Shift 打开【Main.mdb】文件,开启的是 设计模式,而不按住Shift打开【Main.mdb】文件,则开启的是运行模式,设计模式是开发人员所需要使用的,而运行模式则是面向普通的前台用户的在开发完毕,向前台用户部署时,则可以通过 盟威软件快速开发平台【开发者工具】节点下的【开发者设置】子节点所提供的功能,利用管理员独有的权限,将Shift 键禁用如此一来,则前台用户即便按住Shift 键打开【Main.mdb】文件,也只能显示前台登录界面只有运行模式可用,从而更大限度地保证数据库的安全当然,这种操作是可逆的,当需要再次进行开发时,管理员可以利用管理员权限再度开启Shift 键的功能,从而可以进入设计模式,再次进入设计界面。接下来,我们继续链接表的工作如上图所示,界面开启以后,请单击左侧窗格的按钮,则如下图所示:Access培训基础教程-报销管理系统第 26 页/共 34页接下来,我们点选其中的【表(B)】,则如下图所示:接下来,请请依次点击【外部数据】【Access】,如下图所示:Access培训基础教程-报销管理系统第 27 页/共 34页如上图,单击【Access】按钮之后,则如下图所示:如上图所示,获取外部数据有两种方式,第一种是直接将目标数据库中的相关对象,直接导入到当前数据库文件中,还有一种便是将目标数据库文件中的表链接到当前数据库文件中我们当然是选择【通过创建链接表来链接到数据源】,接下来,我们点选【浏览(R)】按钮,则如下图所示:Access培训基础教程-报销管理系统第 28 页/共 34页接下来,拉动左侧的垂直滚动条,然后定位到我们的项目文件夹,选择【Data.mdb】文件,则如下图所示:Access培训基础教程-报销管理系统第 29 页/共 34页接下来,单击左下角的【打开(O)】按钮,则如下图所示:如上图所示,我们要的目标文件已经出现在目标文本框中,其实,在这个位置,如若能准确录入路径和文件名,也可以直接录入。接下来,我们单击【确定】按钮,则如下图所示:在这个【链接表】对话框中,已经列出了【Data.mdb】数据库中所有的可供链接的用户表(对于Access 系统而言,盟威软件快速开发平台所用的系统表也属于用户表,但对于盟威软件快速开Access培训基础教程-报销管理系统第 30 页/共 34页发平台的用户而言,这部分Sys_开头的表属于平台系统表,在没有正确指导的情况下,严禁用户直接修改和删除),接下来,按住键盘上的Ctrl键(与按住Shift键一样,中途不能松开),依次点选我们在上一章节新建的三个用户表tblBxmx、tblCodelb、blCodeyg,如下图所示:接下来,单击【确定】按钮,则如下图所示:现在,我们已经可以注意到,刚才点选的三个表都已经出现在当前的列表中,与其他大部分表略有不同的是,这三个表前面都有一个箭头的标志没错,这就是 链接表 的标识所有针对链接表 的更新,都会自动地同步到原表中同理,所有针对原表的更新,也会在再次打开链接表,或者刷新链接表的同时,自动地同步到链接表中也就是说,链接表本身并不存储任何数据,链接表只是原表的一Access培训基础教程-报销管理系统第 31 页/共 34页个影子这也有力地保证了数据库的安全。接下来,我们将讲述盟威软件快速开发平台所提供的链接表的方法。链接表的平台方案为了使教学更加直观,首先,我们先将刚才通过常规方法链接到【Main.mdb】文件中的 3 个表删除,删除的方法是:任意选中 3 个链接表中的1 个,然后,单击鼠标右键,选择【删除(L)】命令,如下图所示:执行删除之后,就会弹出如下对话框,如下图所示:此时,只须单击【是(Y)】按钮加以确认,就可以完成删除操作。然后,再依次删除剩下的2 个链接表在这里,需要值得注意的是,【Main.mdb】本身拥有的链接表(即是平台所用的链接表)严禁删除,只允许删除我们自己链接过来的链接表。此外,删除链接表只是删除原表的链接,并不会删除【Data.mdb】文件中的原表,这一点请大家放心。但是,如若删除了【Data.mdb】中的原表,那么,链接到【Main.mdb】数据库的链接表虽然不会自动删除,但是也会成为无效的链接表,这一点也请大家注意。我们将链接表全部删除之后,接下来,单击左侧窗格的按钮,然后在弹出的下拉列表中选择【窗体(F)】,则如下图所示:Access培训基础教程-报销管理系统第 32 页/共 34页我们可以注意到,这里已经有了不少Sys 开头和 _开头的窗体,这些都是盟威软件开发平台所赖以运行的平台系统窗体。接下来,我们点选其中一个名为【SysFrmLogin】窗体,然后直接双击该窗体,或者单击鼠标右键,选择【打开(O)】命令,则会弹出第4 课中已经非常熟悉的自动登录界面,登录完成之后,如下图所示:我们可以看到,在左侧树形菜单的【开发者工具】节点下有一个【快速创建链接表】的子节点是的,就是这个节点,接下来,双击【快速创建链接表】子节点,则会弹出一个对话框,如下图所示:Access培训基础教程-报销管理系统第 33 页/共 34页在该对话框中,我们可以清晰看到【Data.mdb】中所有的用户表,接下来,请按住键盘上的Ctrl键,然后依次点选tblBxmx、tblCodelb、blCodeyg,如下图所示:然后,单击【创建】按钮,就会弹出创建成功的提示信息。这个时候,链接表就已经创建成功了这种由盟威软件快速开发平台所提供的方法,并不需要进入平台的设计模式,在平台的运行模式Access培训基础教程-报销管理系统第 34 页/共 34页下,只要拥有管理员的权限,或者拥有管理员所分配的相关权限,都可以进行操作而本教程基于设计模式来讲述,只是为了表述的方便而已。接下来,关闭【快速创建链接表】对话框,然后,再次单击左侧窗格的按钮,然后在弹出的下拉列表中选择【表(B)】,则如下图所示:这个时候,我们可以清晰到看到,我们创建的链接表已经出现在表的列表之中了,与Access 2003不同的是,由于左侧的增加了可以便捷查看当前对象的窗格,使我们切换、查看数据库对象的的速度比以前快了很多,路径也更为简洁尽管它占用了一点空间,但是优点还是很明显的当然,我们可以根据当前的工作的需要,随时开启或者关闭该窗格,应该说,这是一个值得赞赏的改进。好,进行到这里,链接表的内容,就已经讲完了,而本教程关于表的操作的内容,也讲完了,如若您还有所疑惑,请通过前面介绍的三种方式寻求解决方案,或向我们反馈,以便我们可以进一步地对本教程进行优化和扩充。