Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access-从父窗体创建新的子记录并自动填充外键_Ms Access - Fatal编程技术网

Ms access MS Access-从父窗体创建新的子记录并自动填充外键

Ms access MS Access-从父窗体创建新的子记录并自动填充外键,ms-access,Ms Access,仍在学习,提前道歉 我有两个表Parenttbl和Childtbl,它们以一对多的关系链接 我有父母表和孩子表。我想在我的父窗体上有一个按钮,打开带有新记录的子窗体,其中外键会自动填充,但在我的一生中不能这样做 我已经玩过宏编辑器了。使用OpenForm我可以创建一个新记录,但是外键是空的 我试着按照指示和步骤去做,但没能让它工作 提前感谢。如果已设置子窗体控件及其属性,FK将自动填充。需要零代码。如果已设置子窗体控件及其属性,则FK将自动填充。需要零代码。如前所述,如果将第二个子表单放到主表单

仍在学习,提前道歉

我有两个表Parenttbl和Childtbl,它们以一对多的关系链接

我有父母表和孩子表。我想在我的父窗体上有一个按钮,打开带有新记录的子窗体,其中外键会自动填充,但在我的一生中不能这样做

我已经玩过宏编辑器了。使用OpenForm我可以创建一个新记录,但是外键是空的

我试着按照指示和步骤去做,但没能让它工作


提前感谢。

如果已设置子窗体控件及其属性,FK将自动填充。需要零代码。

如果已设置子窗体控件及其属性,则FK将自动填充。需要零代码。

如前所述,如果将第二个子表单放到主表单中,则不需要添加按钮,甚至可以编辑所有过去/现有的记录

然而,如果你真的想要两种不同的形式

启动第二个表单的按钮代码可以是:

if me.dirty = true then me.dirty = false ' save our data in form
docmd.OpenForm "MyChildForm",,,,acFormAdd
forms("MyChildForm")!MyFKColumnName = me!id

因此,上面将把表单启动到一个新的空白reocrd,然后我们将用于关联的列设置回主表单。你当然可以替换!具有此关系中使用的列的实际名称的MyFKColumn。经常使用的“ID”也是如此,所以在我身上重新使用“ID”!ID,主窗体中PK列的名称。

如前所述,如果将第二个子窗体放到主窗体中,则不需要添加按钮,您甚至可以编辑所有过去/现有的记录

然而,如果你真的想要两种不同的形式

启动第二个表单的按钮代码可以是:

if me.dirty = true then me.dirty = false ' save our data in form
docmd.OpenForm "MyChildForm",,,,acFormAdd
forms("MyChildForm")!MyFKColumnName = me!id

因此,上面将把表单启动到一个新的空白reocrd,然后我们将用于关联的列设置回主表单。你当然可以替换!具有此关系中使用的列的实际名称的MyFKColumn。经常使用的“ID”也是如此,所以在我身上重新使用“ID”!主窗体中PK列名称的ID。

最简单的方法是对窗体/子窗体进行排列,不需要代码。否则,请使用宏或VBA(我只使用VBA)。您显示的第二个链接看起来很合适。还有一个。这是一个常见的话题。“无法使其工作”意味着什么——错误消息、错误结果、什么也没发生?您应该提供您尝试的代码。编辑问题。我创建了一个子表单,遵循了您提供的链接中的解决方案,但按钮创建的新记录的外键仍设置为“0”。最简单的方法是表单/子表单排列,无需代码。否则,请使用宏或VBA(我只使用VBA)。您显示的第二个链接看起来很合适。还有一个。这是一个常见的话题。“无法使其工作”意味着什么——错误消息、错误结果、什么也没发生?您应该提供您尝试的代码。编辑问题。我创建了一个子表单,遵循了您提供的链接中的解决方案,但该按钮创建的新记录的外键仍设置为“0”。我尝试了一个子表单,同时设置了这两个属性,然后在子表单中创建了一个按钮。但是它创建ForeignKey的条目总是设置为0。那么,很可能您还没有在这两个表之间定义。谢谢您的回复。我阅读了这个链接,可以确认我已经按照从父母的主键到孩子的外键的一对多链接的每个步骤创建了链接。然后发生了其他事情。这是Access的一个基本功能,我从未见过它失败。如果您确实有表单/子表单安排,那么就不需要创建外键的按钮。正如古斯塔夫所说,这是基本的访问功能。构建表单/子表单甚至不需要设置关系。你读过入门教程吗?我试过一个子表单,设置了这两个属性,然后在子表单中创建了一个按钮。但是它创建ForeignKey的条目总是设置为0。那么,很可能您还没有在这两个表之间定义。谢谢您的回复。我阅读了这个链接,可以确认我已经按照从父母的主键到孩子的外键的一对多链接的每个步骤创建了链接。然后发生了其他事情。这是Access的一个基本功能,我从未见过它失败。如果您确实有表单/子表单安排,那么就不需要创建外键的按钮。正如古斯塔夫所说,这是基本的访问功能。构建表单/子表单甚至不需要设置关系。你读过入门教程吗?