6关联和宏的使用

上传人:m**** 文档编号:560854838 上传时间:2022-08-08 格式:DOC 页数:21 大小:61.50KB
返回 下载 相关 举报
6关联和宏的使用_第1页
第1页 / 共21页
6关联和宏的使用_第2页
第2页 / 共21页
6关联和宏的使用_第3页
第3页 / 共21页
6关联和宏的使用_第4页
第4页 / 共21页
6关联和宏的使用_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《6关联和宏的使用》由会员分享,可在线阅读,更多相关《6关联和宏的使用(21页珍藏版)》请在金锄头文库上搜索。

1、本模块主要内容:一、“表”与“表”之间的“关联”; 二、“关联”与多表联合“查询”及“主/子窗体”的建立与应用;三、“宏”的概念及应用;关键字:关联、索引、宏(对象)“表”与“表”之间“关联”的概念:在数据库技术中,每一个“打开”的数据库(表)都有一个记录指针。记录指针要么指向表结尾的“缓冲区”,此时接受用户输入的新记录;要么指向一条已存在的记录,该记录称为“当前记录”,用户可以观看和修改“当前记录”的内容。如果需要在两个(或两个以上)打开的表之间、它们的记录指针必须按一定的规律移动(例如,当A表的记录指针指向某个学号的记录,B表的记录指针也要指向相同学号的记录),就必须建立表与表之间的“关联

2、”。换言之,“关联”就是使得相关表之间的记录指针同步移动的技术(注意,这个“同步”一般不是记录号之间的同步)。设置“表”之间的“关联”的操作:如果需要“显式的”(即,人工的)建立表之间的关联,必须先关闭数据库文件中所有的表和查询等对象,然后在ACCESS的窗口菜单中选择“工具-关系.”项(所谓“关系数据库”就是要有表之间关联功能的数据库管理系统),在打开的“显示表”窗口中选择需要建立关联的“表”(或“查询”)添加到“关系”窗口,选择完毕关闭“显示表”窗口,在“关系”窗口中,拖动某个表中要作为关联依据的“字段”到另外一个表中要建立关联的字段(例如,将A表的“学号”字段拖到B表的“学号”字段),关

3、闭“关系”窗口,两表之间的“关联”被建立。如上所述,建立关联后打开A表,当记录指针指向某个学号的记录,B表的记录指针也会自动指向相同学号的记录。说明:在后面的文字中为方便叙述,作为关联依据的字段会被称为“关联字段”。如果在打开“关系”窗口后没有出现“显示表”窗口(即无从选择要建立关联的“表/查询”,可以在“关系”窗口的空白处右击,在快捷菜单中选择“显示表”项。建立“关联”的条件与注意事项:一、如果要修改(编辑)关联的参数,可以打开“工具-关系”窗口,选择有关联的表,在ACCESS的窗口菜单中选择“关系-编辑关系”项;如果要取消(删除)关联,右击两表之间代表关联的线条,在快捷菜单中选择“删除”;

4、二、ACCESS是不会自动检验各种关联是否合理的,当建立了多个关联后,开发者要自行检验和维护各关联的合理性;三、ACCESS不要求关联的各表中关联字段的字段名相同(例如,A表的“学号”字段可以与B表的“XH”字段关联),但要求各关联字段的数据类型相同,如果是数字型,要求子类型也相同。但在实际操作中,为避免出现混乱,一般要使各关联字段的字段名、数据类型、字段宽度(大小)保持一致;四、一般,采用文本型、数字型字段作为关联字段。关联字段多采用“单字段”,但也可以多个字段联合起来做关联字段组合(即,多字段关联);五、课本P79-P79介绍的“点击记录左侧“+”号,显示关联表中匹配记录”效果,往往要在建

5、立关联的时候,关联字段被设置成“主键”或字段属性的索引项设置为“有索引(无重复)”、即唯一性索引才会出现(即,不是任何情况下都可以看到课本介绍的关联效果)说明:ACCESS的索引问题。A、在ACCESS中,如果给一个字段设置了“索引”,ACCESS默认是使用它(设置索引对字段的限制和效果自动生效)。对同一个“表”、同一时刻只能使用一种“索引”设置;B、字段属性“索引”项中,“有(有重复)”选项表示该字段允许有内容相同的数据、“有(无重复)”选项表示该字段不允许有内容相同的数据(即,唯一性索引),如果是单字段索引,效果几乎相当设置该字段为“主键”;C、更多的索引参数的设置,可以在选择字段属性中“

6、索引”项,然后在ACCESS窗口菜单中选择“视图-索引”项来设置(如,设置记录按“升序”还是“降序”出现);D、一个字段无论是否使用“索引”,均可以用该字段作为建立“关联”的字段。但不同的索引类型(无索引、有重复索引、无重复索引)会影响关联的效果;E、为避免混乱,建议在两个有关联的“表”中,将起主引导作用的表中的“唯一性标识”字段的“索引”设置为“有(无重复)”或直接设置为“主键”,并作为“关联”字段,该关联字段与被引导的表的关联字段可成为“一对多”的关系(即,被引导表的关联字段的“索引”设置为“有(有重复)”。六、在“编辑关系”窗口中可以观看和修改“关联”的参数。下面是有关参数的解释:A、两

7、关联表之间,如果关联字段都是“主键”或“唯一性索引”,关系类型为“一对一”(即A表一个记录只可能对应B表一个记录);如果A表关联字段是“主键”或“唯一性索引”而B表的关联字段不是,关系类型为“一对多”(即A表的一个记录可能对应B表的多个记录),如果两表的关联字段都不是“主键”或“唯一性索引”,关系类型为“未定”或“多对多”,后果不可预测。建议:为避免出现混乱,使用“关联”时至少要设置一个表的关联字段为“主键”或“唯一性索引”,如果是“一对多”,“一”的那个表做“主引导表”、“多”的那个表做“被引导表”,根据主引导表的记录指针变化引导出被引导表的相关记录;B、“连接类型”分为三种。第1种是关联(

8、连接)只包含A、B两表中的关联字段内都有相同数据的记录行、只在A表或只在B表中存在的记录被排除在关联之外(不出现)。这是默认项;第2种是包含A表中所有记录和B表中关联字段内的数据可以在A表中找到匹配的记录(即,B表中可能有部分记录被排除在外),当A表中某记录在B表中找不到匹配时,B表对应的显示为空白;第3种情况与第2种相反,A表中可能有部分记录被排除在外,当B表做主引导表的时候,对在A表中找不到匹配的记录,A表对应的显示为空白。建立与“关联”有关的多表联合“查询”:在类似CMIS的应用系统开发过程中,往往需要把多个表中的数据组合起来、作为查询结果提供给终端用户(如,一个学生的成绩按“学期”分布

9、在多个“成绩表”,需要一齐提供给终端用户)-遇到这种情况,就必须建立涉及多个“表”的联合“查询”。多表联合查询的关键是各表的记录指针必须同时指向相同关键的数据项(在此问题中,“学号”作为关键数据项),实际就是利用“关联”的问题。典型的建立多表联合查询的过程:一、建立涉及的表(查询)之间“关联”(例如,用“学号”作为关联字段);二、创建查询,选择涉及的各个“表/查询”;三、将需用的字段分别从各“表/查询”中拖到新查询的“字段”中.建立多表联合“查询”的相关问题:一、如果在创建新查询之前已经建立各表的“关联”,新查询自动利用这些关联(显式),将这些关联设置包含到新查询中。如果没有预先建立相关的“关

10、联”,ACCESS也可能会自动建立“关联”(即,隐式的。虽然未必是开发者想要的);二、查询中各表的“关联”是“包含”在查询的设置中的,一个查询被建立后,修改显式的(外部的)“关联”不会影响到“查询”中各表的“关联”;三、修改“查询”内“关联”设置的方法:如果要修改查询中的“关联”(例如,ACCESS自动建立的“关联”不符要求),在进入“查询设计视图”后修改“联接属性”;四、如果删除多表联合查询中的“关联”,该查询可以运行,但记录指针的移动将不会按“关联”去同步(即,“查询”视图中同一记录,A表的字段和B表的字段内容不是来自相同的关键数据项,如,可能是A表“001”学号的“语文”成绩和B表的“8

11、88”学号的“数学”成绩出现在同一行)。总结:多表联合查询比较适合各表的关系类型为“一对一”的情况,如果是“一对多”(如,一对N,N1),原来在表中只有“一”个的记录在查询中会变成N个的记录以适应“多”方面的N个记录,若需要保持“一对多”的显示,可以考虑采用下面介绍的“主/子窗体”技术。建立与“关联”有关的多表“主/子窗体”:一般,在一个窗体中只可以使用一个数据源,如果要在一个窗体中使用多个数据源,可以用“主/子窗体”达到目的-主窗体一个数据源,每个子窗体对应另外不同的数据源。如同多表联合查询,“主/子窗体”中各数据源之间也必须先建立“关联”才有实际意义。如果没有必要的“关联”,各数据源的记录

12、指针不会按规则同步移动。以建立一个“一对多”的“主/子窗体”为例-假定多个学期的成绩放在一个“成绩表”中,那“学生信息表”的“学号”字段和“成绩表”的“学号”字段就是“一对多”的关系,以“学号”为关联字段,主窗体的数据源为“学生信息表”,且窗体类型使用“纵栏式”(显示一个记录的内容)、子窗体的数据源为“成绩表”,窗体类型使用“数据表式”或“表格式”(显示多个记录的内容)。这样,当主窗体显示某学生的学号、姓名、子窗体就显示该学生各学期(一学期一行)、各学科的成绩。建立“主/子窗体”的途径:方法一:先建立子窗体对象并保存,后建立主窗体,在其“窗体设计视图”中将子窗体对象拖到主窗体中;方法二:先建立

13、主窗体,在“窗体设计视图”中,将“工具箱”中的“子窗体/子报表”控件拖到主窗体中产生子窗体。主窗体和各个子窗体在数据库文件中是分开保存的独立对象。在“主/子窗体”中,数据源的“关联”问题:与多表联合查询相似,建立一个准确有效的“主/子窗体”的关键是在主窗体的数据源与子窗体的数据源之间建立“关联”。如果在创建“主/子窗体”之前已经建立相应的数据源之间的“关联”,ACCESS应该会自动利用这些关联(显式),将这些关联设置包含到创建的“主/子窗体”中。如果没有预先建立相关的“关联”,ACCESS在创建“主/子窗体”的过程中可能会要求开发者确定“关联”。修改“主/子窗体”内“关联”设置的方法:如果由于

14、某些原因没有“关联”、或“关联”受到破坏、或“关联”不符要求,可以再次人为地修改“关联”-进入“主/子窗体”设计视图(注意:不是“子窗体”设计视图),选择“子窗体”部分,点击“属性”按钮,弹出“子窗体属性”对话框,在“数据”选项卡中设置“链接子字段”、“链接主字段”的内容,它们分别就是“子窗体”和“主窗体”的关联字段。总结:无论是“主/子窗体”或“多表联合查询”,是否能按照设计者的意愿得出结果的关键都是“关联”的设置-但是,ACCESS是不会自动检验“关联”设置是否正确、甚至是不会检验“关联”是否存在的,这个工作需要开发者认真去验证!“宏”对象的概念与“宏”的类型:“宏”是ACCESS的一种对

15、象,ACCESS允许开发者将一系列动作预先编制在一个“宏”内,并将这个“宏”与某种事件“挂钩”,当该事件发生的时候,由ACCESS自动执行(运行)这个“宏”来实现这些预定动作(与“控件”中的“命令按钮”的作用很类似,不过“宏”的应用范围比“命令按钮”广得多)。可以将“宏”划分做3种类型:一、宏。无执行条件限制的“宏”,如果与事件挂钩,当此事件发生该“宏”就会被运行。这种“宏”也可以称为“单个宏”或“普通宏”;二、条件宏。有执行条件限制的“宏”,当挂钩事件发生的时候,只有条件为“真”时“宏操作”才会执行(注意,是有条件执行“宏操作”,“宏”是事件发生就被执行的);三、宏组。包含多个单个宏(或条件

16、宏)的复合宏。宏组内的宏可以称为“子宏”,用“宏组名.子宏名”标识。“宏”操作的类型:在一个宏内执行的动作称之为“宏操作”-常用的宏操作有“打开窗体”、“关闭窗口”、“移动记录指针”“打开查询”.等。各种“宏操作”是ACCESS预先编制好的、提供给开发人员使用的工具-实际上,使用“宏”对象的动机就是为了方便地利用这些预制的模块,免去使用VB等工具编程的麻烦。无论哪一种类型的“宏”,其包含的宏操作都可以是一个(单步)、或多个(多步)的。说明:课本P172-P173的表10-1,列出了部分常用的宏操作的名字和功能解释,更多的宏操作的功能,可以在宏设计视图中选中一个宏操作名字,按F1键取得相关的解释。“事件”的概念与ACCESS不同对象的“事件”:编制完成的“宏”作为ACCESS的一种

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号