ACCESS:定义表之间的关系


“关系”简介

  在Access数据库中,不同表中的数据中间都存在一种关系,这种关系将数据库里各张表中的每条数据记录都和数据库中唯一的主题相 联络,使得对一个数据的操作都成为数据库的整体操作,正所谓“牵一发而动全身” 。

  就拿上几课 构建的表来说吧,“客户信息表”中的“公司名称”和“订单信息表”中的“订货单位”所包括的值有众多是 雷同的 。由于签了订单的“订货单位” 确定已经是公司的客户了,这些客户的名称也被 记录在“客户信息表”的“公司名称”字段中 。当我们已知一个客户的名称时,既 可以通过“客户信息表”晓得它的“客户信息”,也 可以通过“订单信息表”了解它所签订的“订单信息”,所以说“公司名称”作为纽带将“客户 材料表”和“订单信息表”中的相应字段信息衔接在了一同,为了把数据库中表中间的这种数据关系体现出来,Access提供一种 构建表与表中间“关系”的 步骤 。用这种 步骤 构建了关系的数据 惟独求通过一个主题就 可以调出来 使用,十分容易 。

  当我们在“客户信息表”和“订单信息表”中 构建这样的关系以后, 惟独求看看“客户信息表”,在不增加表内容的状况下,就 可以看到所有客户的信息及其所有“订单”的状况,使这些数据 一览无余 。

ACCESS:定义表中间的关系

表中间的三种关系

  在 构建表中间的关系前,我们还是要提一下“关系”的三 品种型“一对一”、“一对多”和“多对多” 。在Access中, 可以在两个表中间直接 构建“一对一”和“一对多”关系,而“多对多”关系则要通过“一对多”关系来实现 。我们分别来说说这三种“关系” 。

  首先是“一对一”关系, 比方下面的两个表:某学校学生月副食 贴补:

月副食

和某学校学生月助学金:

月助学金表

  我们降这两个表中的数据进行汇总生成新的表:“某学校学生月实发金额汇总”:

汇总生成的新表

  由于姓名字段可能会浮现 反复的状况,所以惟独通过不可能浮现 反复的值的字段“学号”, 威力将这两个表唯一地 联络起来, 保障“副食补贴”和“助学金”不至于 舛误地发放,这样“月副食 贴补表”中的一个学号就只对应“月助学金”中的一个学号,绝不会弄错 。这样两个表的关系很显而易见便是“一对一”了 。

  下面来看看“一对多”关系 。在“客户信息表”和“订单信息表”中,“订单信息表”中的“订货单位”字段和“客户信息表”中的“公司名称”字段中的值都是一样的 。其实惟独那些订货了的单位才是公司的客户,所以这两个表中间是靠客户公司的名字 联络在一同的 。然而每个客户都 可以订众多份订单 。所以在“客户信息表”中的一个“公司名称”就能对应“订单信息表”中的几份“订单” 。这样的关系便是“一对多” 。

  最终使“多对多”关系,我们晓得,书店中有众多书,同时一种书也 可以在众多书店里找到 。这时“书”和“书店”的关系便是“多对多”关系了 。

怎么在表中间 构建关系

  现在我们就开始在表中间 构建“关系”,首先单击“工具”菜单下的“关系”命令,弹出“关系”对话框,上面还有一个“显示表”对话框如下图,通过“显示表”对话框 可以把需求 构建关系的“表”或“ 查问”加到“关系”对话框中去 。

“显示表”对话框

  将两个表“客户信息表”和“订单信息表”都选中,单击“增加”按钮把它们都增加到“关系”对话框上,单击“关闭”按钮把“显示表”对话框关闭 。以后再需求 打开它时, 惟独在“关系”对话框上单击鼠标右键, 取舍“显示表”命令就 可以了 。

“关系”对话框

  在“关系”对话框中惟独“客户信息表”和“订单信息表”的字段列表 。怎么 构建关系呢?其实表都是由字段组成的,表中间的关系也由字段来 联络 。让不同表中的两个字段 构建 联络以后,表中的 其余字段自然也就 可以通过这两个字段中间的关系 联络在一同了 。也便是说在“客户信息表”中的“公司名称”和“订单信息表”中的“订货单位”两个字段中间 构建关系就 可以了 。先在“客户信息表”字段列表 当选中“公司名称”项, 而后按住鼠标左键并拖动鼠标到“订单信息表”中的“订货单位”项上,松开鼠标左键,这时在屏幕上浮现“编辑关系”对话框 。

“编辑关系”对话框

  这个对话框 可以协助我们编辑所 构建的关系,通过左面的列表框 可以转变 构建关系的两个字段的 起源 。 可以单击“新建...”按钮 缔造新的关系,或者单击“联接类型”为联接 取舍一种联接类型 。单击“联接类型”按钮,在弹出的新对话框中 取舍第三项, 而后单击“确定”按钮就 可以了 。回到“编辑关系”对话框后单击“ 缔造”按钮 。

缔造关系

  现在在两个列表框间就浮现了一条“折线”,将“订货公司”和“公司名称”两个选项联接在一同 。关闭“关系”对话框,并 保留对“关系”布局的 批改 。在表间 构建关系便是这样的 。

“关系”与“子数据表”

   打开“客户信息表”,你会发现这个表中增加了一些新的表,它们是“客户信息表”的子表,也便是“订单信息表” 。

“客户信息表”及其子表

  在这种“一对多”的状况下, 彻底 可以通过“客户信息表”中的“公司名称”信息将这两个表的内容都串起来 。在主表中的每一个记录下面都会带着一个甚至几个子表中的“订单”记录 。 存在“一对一”关系的两个表中间互为对方的“子表” 。

  通常在 构建表中间的关系以后,Access会自动在主表中插入子表 。但这些子表一开始都是不显示出来的 。在Access中,让子表显示出来叫做“铺开”子数据表,让子表 潜藏叫做将子数据表“折叠” 。铺开的时候容易查阅订单信息,而折叠起来以后有 可以 比较容易的治理“客户信息表” 。

  要“铺开”子数据表, 惟独用鼠标单击主表第一个字段前面一格,对应记录的子记录就“铺开”了,而且格中的小方框内“加号”变成了“减号” 。假如再单击一次,就 可以把这一格的子记录“折叠”起来了,小方框内的“减号”也变回“加号” 。假如主表很大的话,这样一个一个地“铺开”和“折叠”子数据表就显得太麻烦了,Access为我们提供了一种操作 模式,它 可以一下子“铺开”或“折叠”目前数据表的所有子数据表 。 打开一个带有子数据表的表时,在“ 格局”菜单“子数据表”项的子菜单中,有三个命令“所有铺开”、“所有折叠”和“删除”,“所有铺开”命令 可以将主表中的所有子数据表都“铺开”,“所有折叠”命令 可以将主表中的所有子数据表都“折叠”起来 。不需求在主表中显示子数据表的这种 模式来反映两个表中间的“关系”时,就 可以 使用“删除”命令来把这种用子数据表显示的 步骤删除 。但这时两个表的“关系”并没有被删除 。假如想 复原在主表上显示“子数据表”的 模式, 可以先 打开主表, 比方“客户信息表”,单击“插入”菜单下的“子数据表”命令,弹出“插入子数据表”对话框如下图:

“插入子数据表”对话框

  在列表框 当选取“表”----“订单信息表”, 而后在“链接子字段”组合框 当选取“订货单位”字段,并在“链接主字段”组合框 当选取“公司名称”字段,单击“确定”按钮就 可以在主数据表“客户信息表”中再一次插入子数据表“订单信息表”了 。必须要 留神的是在任何一个数据表中插入子数据表都需求在两个表中间 构建“关系”,假如这两个表的“主链接字段”和“子链接字段”中间还没有 构建联结的话,在单击“确定”按钮插入“子数据表”的时候就会询问是不是要在这两个表中间 构建相应的“关系”,惟独 构建“关系”以后, 威力 实现“插入子数据表”过程 。用这样的 模式在表中间 构建“关系”不像在“关系”对话框中 构建的“关系”那样直观 。所以我们提倡在关系对话框中 构建好表与表中间的“关系”,由Access自动地 缔造子数据表 。