如何创建表单来编辑一对多关系?
Posted
技术标签:
【中文标题】如何创建表单来编辑一对多关系?【英文标题】:How to create a form to edit a one to many relationship? 【发布时间】:2008-11-19 14:28:14 【问题描述】:使用 MS Access 2007,我正在创建一个学生管理数据库。我有以下表格:
学生 课程 课程部分我需要一种将学生分配到课程部分的方法。所以我创建了一个链接学生和会话的表:
StudentsInSection(包含学生的外键和课程部分的外键)我想创建一个表单,允许我编辑一个部分并从学生列表中添加学生。我做过很多关系数据库工作,只是从来没有访问过。这似乎是一件很简单的事情。有人知道这样做的好方法吗?
【问题讨论】:
查看 Northwind 示例数据库几乎总是一个好主意:microsoft.com/downloads/… Orders 表单是 CodeSlave 建议的一个很好的例子。 Access 附带的示例数据库和模板中有很多非常非常糟糕的做法,我不会将它们用作想法的来源,只是因为它们会训练你去做出了问题。 【参考方案1】:创建一个绑定到 StudentsInSection 表的表单。如果您希望能够编辑该部分中的学生,最简单的做法是使用基于 Student 表的具有行源的组合框,该组合框的绑定列与记录集中的学生 ID 相关联StudentInSection 表单的基础。此表单将是您的子表单。将表单的默认视图属性设置为“数据表”或“连续表单”。保存并关闭表单。
创建一个绑定到 CourseSection 表的表单。从 Forms 列表中,单击并拖动基于 StudentsInSection 表的第一个表单到 CourseSection 表单的设计区域。
在新子表单控件的属性表中,将 Link Master Fields 属性设置为 CourseSection 表的 Section ID。在 Link Child Fields 属性中,将值设置为 StudentsInSection 表的 Section ID。设置这些属性将在记录导航时过滤子表单数据以匹配父表单中的当前值。
【讨论】:
【参考方案2】:您可以做的最简单的事情是从主表单创建一个子表单。 主窗体基于学生,子窗体基于学生部分。 在子表单上,添加一个下拉菜单以选择课程。
这样,StudentSection 将使用来自父表单的 StudentID(我假设这是您的密钥)填充,并且您可以在设置下拉菜单时设置 CourseID。
【讨论】:
以上是关于如何创建表单来编辑一对多关系?的主要内容,如果未能解决你的问题,请参考以下文章
如何利用 Prisma 的隐式关系来创建以下关系? (一对多,多对多,一对一)