如何在子表单上设置新记录字段的值?

时间:2019-02-13 17:26:14

标签: sql ms-access

我有一个名为Assembly的表单,该表单有一个名为PartsList的子表单。它们与一个称为Parent的字段绑定在一起。它们在同一张表上工作,主要的Assembly表单仅通过组合框过滤了PartsList子表单,因此您只能在子表单上看到具有与{相同值的记录(Child字段) {1}}。

我想使用子表单轻松为同一Parent添加子级。

我尝试将表达式和方法添加到子表单的Parent属性中,该子表单尝试将新记录的BeforeInsert字段的值设置为主表单中的Parent的当前值表格。

Parent

我收到一个错误:

  

引用对象时发生错误。您试图运行Visual Basic过程,该过程不正确地引用了对象的属性或方法。

在VBA中...

BeforeInsert: =[Parent] = [Forms]![Assembly]![Parent]

我得到一个错误:

  

运行时错误'438':对象不支持此属性或方法。

我猜我的问题是,当我尝试设置新记录的Private Sub Form_BeforeInsert(Cancel As Integer) [Parent] = [Forms]![Assembly]![Parent] End Sub 字段时,我正在访问整个Parent字段对象,而不仅是新记录的值。不过,我对如何仅获取新记录的价值不知所措。

编辑: 我还尝试将子窗体上的[Parent]的默认值设置为主窗体上的Parent的当前值,但是如果更改主窗体值,子窗体的值不会更新。

1 个答案:

答案 0 :(得分:0)

在VBA中放置这样的内容。每次插入完成并在表格中更新插入的记录后,就会触发此操作。

Private Sub Form_AfterInsert() 
   DoCMD.RunSQL "Update Assembly SET Parent = " & [Forms]![Assembly]![Parent]
End Sub