将子窗体中的新记录与父窗体中的记录关联起来



我正在为一家非营利组织开发MS Access 2010中的采购数据库,遇到了一个使用其他资源似乎无法解决的问题。

我有两张与本次讨论相关的表格,一张是采购订单,另一张是行项目。每个行项目记录都有一个关联的采购订单编号(实际上是一个文本字段,因为允许使用字母),并打开"强制引用完整性",一个采购订单对应多个采购行。)为了编辑PO,我有一个表单,它最初是用向导创建的,但从那时起进行了大量修改。在采购订单编辑表单中是一个子表单,它显示采购行表的数据表视图,按主表单中当前的采购订单进行过滤。

最初,当我在子表单中创建新记录时,它会自动将链接PO字段设置为当前PO。通过这种方式,新的采购行记录与当前PO相关联。不过,最近创建的新记录在链接字段中没有值,除非我手动选择该列中的PO,否则在保存记录时,该记录将从视图中筛选出来。

所以问题是,什么属性控制如何在这种类型的子窗体中初始化新记录?是否有其他问题可能导致这种行为?

不幸的是,我没有立即注意到这个问题,所以我不知道在它工作和失败之间会发生什么变化。此外,它似乎是间歇性的,有时工作,有时不工作(但一天内永远不会改变。)我认为这只是意味着我错过了另一个变量。

根据我在询问之前的研究,我尝试过一些事情:

以前,子窗体的"链接主字段"属性设置为父窗体的"ID"字段。现在,我在链接到该字段的主窗体中创建了一个文本框,并将其设置为主字段。老实说,我不明白这会有什么帮助,但多个指南推荐了它。

在采购行表中设置所需的链接字段。这可以防止记录消失,但不会更改初始化。

强制两个字段之间的引用完整性。正如我所说,它现在是强制执行的,但最初并没有。这并没有引起任何明显的变化。

在进入子窗体之前手动保存记录。类似地,在我退出之前保存子窗体记录。

谢谢你的建议。

我知道这篇文章比较老,但我最近刚刚遇到这个问题,并找到了解决方案。

我想你的数据库被拆分了。当您的Access版本大于您的数据库内置版本时,问题就会出现。

从前端删除这些表,然后重新链接到它们。重置表单的主/子字段,一切都应正常工作。

希望这对将来的其他人有所帮助。

在子窗体上,确保"链接子字段"one_answers"链接主字段"属性都设置为创建关系的数据库字段。如果父窗体绑定到一个记录源,该记录源包括创建关系的键字段,则不需要指定要链接的文本框或任何其他控件,只需指定字段的名称即可。

最新更新