microsoft access在子表单中填充外键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了microsoft access在子表单中填充外键相关的知识,希望对你有一定的参考价值。

所以我一直在阅读我能找到的关于这个问题的所有内容,每个人的回答似乎都是替代方案,但这些替代方案对我来说并不适用。

我想要做的是单击form-1中的一个按钮并使用form-1中的正确外键打开form-2,这样我就可以查看数据并根据form-1的键添加更多内容。原因是form-1没有足够的空间来容纳我想要使用的所有子表单。另外,在form-1上放一个按钮使form-2可见并不适合我,但看起来是我现在唯一的选择。

现在发生的事情是当我单击form-1上的按钮,form-2打开时,但它显示来自table-2的所有数据,如果我尝试添加新记录,我必须手动输入.I使用按钮调用表单时,无法获取表单2中的外键以自动填充表单1中的ID。

example tables and forms:
table-1 & form-1: The form has the same data as table
id
first name
last name

table-2 & form-2: The form has the same data as table
id
foreign key = table-1.id
address
someotherdata

目标:form-1有一个名为“添加数据”的按钮。它使用来自form-1的相同ID的外键打开form-2。我可以查看过去的记录或输入更多数据并保存。如果我转到form-1记录ID = 5并单击按钮,则form-2将弹出外键5并允许我输入更多数据到外键5 / ID 5。

如果您有任何疑问,请告诉我。在弄清楚之前我真的不能做太多。我觉得我错过了一些东西,这应该更容易做到。

谢谢!!

答案

考虑:

表单后面的代码打开另一个表单到新记录并使用OpenArgs传递值: DoCmd.OpenForm "yourFormName", , , , acFormAdd, acDialog, Me.yourControlName

调用后面的代码来从OpenArgs和填充字段中提取值: If Me.NewRecord And Not IsNull(Me.OpenArgs) Then Me.yourControlName = Me.OpenArgs 真正的诀窍是弄清楚要把它放入什么事件 - 可能是Open形式。

以上是关于microsoft access在子表单中填充外键的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 验证规则未在子表单中触发

Microsoft Access Where Condition 在子窗体中不起作用

Microsoft Access 2010 - 外键作为下拉菜单

Microsoft Access 表单保存记录

Microsoft Access 2013 - 无法通过子表单添加新记录

使用 Microsoft Access 2010 在子查询中找不到表