2012-10-11 26 views
3

我正在为MS Access 2010中的购买数据库开展非盈利活动,并且遇到了一个我无法使用其他资源解决的问题。将子窗体中的新记录与父窗体中的记录关联起来

我有两个与此讨论相关的表格,一个采购订单和一个订单项。每个行项目记录都有一个采购订单编号(实际上是允许字母输入的文本字段)与“强制引用完整性”打开,一个采购单到多个采购项。)为了编辑采购订单,我有一个表格,这是我最初使用向导创建的,但从那以后已经进行了大量修改。在采购订单编辑表单中是一个子表单,其中显示采购行表的数据表视图,该采购行表由当前在主表单中的采购订单进行过滤。

最初,当我在子窗体中创建新记录时,它会自动将链接PO字段设置为当前PO。这样,新的采购行记录就与当前的采购订单相关联。然而,最近在链接字段中创建了没有值的新记录,除非手动选择该列中的采购订单,否则记录将在保存时从视图中过滤掉。

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

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

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

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

使购买行表中需要链接字段。这可以防止记录消失,但不会更改初始化。

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

在进入子窗体之前手动保存记录。同样在退出之前保存子窗体记录。

非常感谢您的任何建议。

+0

这可以在我的系统上正常工作。你可以开始一个新的简单的数据库,看看你是否遇到相同的问题?也许它是数据库特定的。 – RLH

+0

新数据库没有相同的问题。他们工作得很好。我无法找出导致这个人不工作的差异,但不幸的是,我已经花费了太多的开发时间来重新开始工作。 – Ethan48

+0

由于问题仅限于一个数据库文件,请参阅反编译是否可以解决该问题。 http://stackoverflow.com/questions/3266542/ms-access-how-to-decompile-and-recompile反编译可以修复编译的VBA代码中的损坏。不过,我并没有太大的信心可以帮助解决这种情况,因为我不了解在前一天失败的情况下,应用程序如何能够正常工作。 – HansUp

回答

0

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

1

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

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

从您的前端删除表格,然后重新链接到它们。重置您的表格主/子领域,一切都应该正常工作。

希望这可以帮助别人在未来。

+0

我很高兴这为你工作。有趣的是,我的数据库没有分裂,但问题最终神秘地消失了。 – Ethan48

相关问题