为Access数据表设置关联方式
在Access功能区中选择【数据库工具】选项卡=>【关系】=>【关系】,可进入建立数据表之间关联方式的关系设计视图。
接着就弹出了[显示表]对话框,双击要建立关联方式的数据表,将其加入Access关系设计视图。
本例中,添加了4个数据表到“关系设计视图”,要建立各数据表之间的关联方式,首先就需要熟悉各个数据表中的内容。
tp_book_cate,书籍的分类
tp_book_list_tmp,书籍的信息,如书名、出版社等
tp_book_share_tmp,书籍的阅读笔记,如摘录、笔记等
tp_reading_list_tmp,书籍的阅读记录,如开始阅读时间、结束阅读时间等
先选中数据表“tp_book_list_tmp”中的“id”字段,按住鼠标左键,将其拖拽到数据表“tp_book_share_tmp”中的“book_id”字段上,释放鼠标左键,弹出【编辑关系】对话框。
在Access关系设计视图建立的关联关系是直接在Access底层实体数据表之间建立的,是原生关系,这种关系会传递给基于这些实体数据表所创建的查询和窗体。
在[编辑关系]对话框中勾选[实施参照完整性]复选框,然后,该复选框下面的两个复选框也变成了可选状态。这两个复选框分别是[级联更新相关字段]和[级联删除相关记录],其功能分别是同步更新相关联的两个字段和同步删除相关联的记录。勾选这两个复选框后,单击[创建]按钮。
如果在创建的过程中有例外信息,按提示进行操作即可。一般会有以下两种情况:
① 主表的引用字段中,找不到唯一的索引。则去主表中设置一个主键,作为主表中记录的唯一性标记,其字段的内容不能有重复和空白。
② 主表中无记录,子表中有记录。如前期将主表中的某本书籍删除了,而子表中该本书籍对应的阅读记录还留着的。这时可以将子表中对应书籍的阅读记录删除即可。
按此方式为其他数据表也建立关联方式,并保存。
当数据表之间的关系建立后,再去打开数据表“tp_book_cate”(主表),就会发现数据表中的每条记录前都出现了一个可展开的“+”,单击“+”可以看到与其关联的数据表“tp_book_list_tmp”(子表)中的相关记录。
验证一下是否真的实现了级联删除和级联更新功能。
在主表和子表中分别录入一条测试数据。
原书籍ID为146,修改为180后,子表的book_id自动变成了180。(级联更新)
在窗体中单击[删除记录]按钮,弹出对话框“指定级联删除的关系将导致该表和相关表中的1记录都被删除”,点击[是]按钮,确认删除。(级联删除)。实现了通过一步删除操作,将两个表中的记录同步删除。