我正在MS Access 2010中为非营利组织创建一个采购数据库,遇到了一个我似乎无法使用其他资源解决的问题。
我有两个与此讨论相关的表,一个是采购订单,另一个是订单项。每个行项目记录都有一个采购订单编号(实际上是一个文本字段,因为允许使用字母),启用了“强制参照完整性”,一个PO到多个购买行。)为了编辑PO,我有一个表单,我最初使用向导创建的,但从那时起经过大量修改。在PO编辑表单中有一个子表单,它显示采购行表的数据表视图,按主表单中当前的PO进行过滤。
最初,当我在子窗体中创建新记录时,它会自动将链接PO字段设置为当前PO。这样,新的采购线记录与当前采购订单相关联。最近,在链接字段中创建的新记录没有任何值,除非我手动选择该列中的PO,否则记录会在保存时从视图中过滤掉。
所以问题是,什么属性控制如何在这种类型的子表单中初始化新记录?还有其他可能导致此行为的问题吗?
不幸的是我没有立即注意到这个问题,所以我不知道它在工作和失败之间发生了什么变化。此外,它似乎是间歇性的,工作了几天而不是其他人(但在一天之内从未改变过。)我认为这只是意味着我错过了另一个变量。
根据我的研究,我在尝试之前尝试了一些事情:
以前,子表单的“链接主字段”属性设置为父表单的“ID”字段。我现在在主窗体中创建了一个链接到该字段的文本框,并将其设置为主字段。说实话,我不明白这会有什么帮助,但多个指导指南推荐它。
在购买行表中创建所需的链接字段。这可以防止记录消失,但不会改变初始化。
强制执行两个字段之间的参照完整性。正如我所说,它现在已经执行,但最初并非如此。这没有引起任何明显的变化。
在输入子表单之前手动保存记录。同样在退出之前保存子表单记录。
非常感谢您的任何建议。
答案 0 :(得分:1)
我知道这篇文章比较老,但我刚刚遇到这个问题并找到了解决方案。
我想你的数据库是分开的。当您的Access版本大于数据库的内置版本时,问题就出现了。
从前端删除表格,然后重新链接到它们。重置您的表单主/子字段,一切都应该正常工作。
希望将来有人帮助其他人。
答案 1 :(得分:0)
在子窗体上,确保将“链接子字段”和“链接主字段”属性都设置为创建关系的数据库字段。如果父表单绑定到包含创建关系的键字段的记录源,则不需要指定要链接的文本框或任何其他控件,只需指定字段的名称。