MS Access:如何将预先存在的子项添加到父表单上的集合中

时间:2012-02-10 10:27:31

标签: ms-access parent-child

我有两张桌子:父母和孩子。子记录预先存在于表中。我想为Parent创建一个表单,其子表单包含Children,并且想要一个子表单。永远不应该在这里创造新的孩子。选定的子项将FK属性设置为父项的PK。

这在MS Access 2010中是否可行?

...谢谢

1 个答案:

答案 0 :(得分:1)

一种方法是创建表单和子表单并将子表单的Allow Additions属性设置为No,这将阻止创建子表单。接下来,向所调用的行添加一个按钮,让我们说Assign,此按钮的Click事件会将子级的FK更新为父级的PK,例如:

Me.txtParentID = Me.Parent.txtID

人性本来就是这样,你可能需要一个表单或按钮,允许父母在被错误分配时被删除。

您可能希望从表单中排除已分配的子女。

当然,还有其他几种方法可以做到这一点。

修改

假设您在子表中有一些表示父项的字段,因此您可以使用它来过滤未分配的子项。弹出窗体的记录源类似于:

SELECT ID, Something FROM Children WHERE ParentID Is Null

您仍然可以使用分配按钮,它可以使用主窗体中的OpenArg和消息框进行确认,ID直接来自主窗体,或者另外一个小窗体来选择父窗体。

我不建议弹出窗口。除非您将其设置为应用模式,否则用户可能会移动主表单记录而不会给予足够的关注,如果您确实将其设置为应用模式,则会产生麻烦。

已分配子项的子表单将更安全,或者仅包含未分配子项的赋值表单,其中包含基于子表父项ID外键的组合框以选择父项。这可能是一种连续的形式。