首页 > 解决方案 > 我正在尝试使用子表单/弹出表单在 MS Access 的子数据表中填充数据

问题描述

情况是这样的:我正在构建一个 MS Access 数据库,供我的人口健康部门使用,以管理对 COVID-19 隔离人员的呼叫数据。在接收期间,他们会询问家中是否有同居者。在后续电话中,他们会询问同居者的状况。

我有一个用于捕获所有摄入数据 (FullTable_frm) 的表格,以及一个名为 Cohabitants 的附加表格。同居者是我的主要人口统计表中的一个子数据表。我想使用案例编号 (CaseID) 来涵盖家庭的主要成员以及任何同居者。我的目标是使用 Cohabitants 表单作为弹出窗口,如果选中 FullTable_form 上的复选框,它将打开弹出窗口,可以在其中为家中的任何同居者输入记录。

我尝试执行此操作的每一种方式,我都会收到错误消息,“您无法添加或更改记录,因为需要相关记录......”我在 FullTable 和 Cohabitants 表之间有 1:many 关系,并且表格视图将同居者显示为子数据表,我可以直接在其中输入数据。

关于我可能出错的地方以及如何解决它的任何想法?

标签: databasems-access

解决方案


这只是根据您的示例快速创建一个简单的工作访问数据库的演练。表格结构很糟糕,但如果没有更多细节,我们无法提出更合适的东西,所以我们提到它并继续前进。首先创建两个表:

在此处输入图像描述

接下来转到databasetools-relationships。摆弄直到你得到类似于上述关系的东西。关键是在 FullTable 中有 CaseID 并将其链接到 Cohabitants 表中的 CaseID。您可以通过将 Case ID 从 Full Table 拖动到 Cohabitants 表来执行此操作(编辑关系弹出对话框的外观图片) 在此处输入图像描述

完成后关闭关系窗口并单击同居者表。然后转到屏幕顶部并单击创建然后形成。(在创建完整表格之前创建关系和同居者表格很重要。)

在此处输入图像描述

同居者表格已完成。现在单击 FullTable 并重复以获取 fulltable 表单。 在此处输入图像描述

请注意,如果您已经建立了关系并且同居者表单 Access 会自动将同居者表单添加为子表单,那么您就完成了!继续使用完整表格表单一侧的记录选择器,了解如何将数据添加到表格并滚动浏览该数据。如果出现问题,请确保您在 FullTable 和 Cohabitants 之间建立了关系,然后您可以通过在设计模式下将 Cohabitants 表拖到 fulltable 表单上来将 cohabitants 子表单添加到 FullTable 表单。

注意:这里的 CaseID 既是主键也是自动编号,因此每次用户添加数据时,访问都会在后台填充它。如果您不控制 CaseID,则必须能够输入 CaseID,但如果访问正在跟踪并分配 CaseID,则只需删除或使 CaseID 在表单上只读。

PS 如果子表单不工作,请在设计模式下打开 FullTable 表单,然后单击子表单。确保将链接主字段和链接子字段设置为 CaseID。 在此处输入图像描述


推荐阅读