如何搜索子表单并使用数据在另一个子表单中添加记录

Posted

技术标签:

【中文标题】如何搜索子表单并使用数据在另一个子表单中添加记录【英文标题】:How to search subform and use data to add record in another subform 【发布时间】:2010-02-02 12:50:14 【问题描述】:

我有一个主表单 INVOICE,其中包含子表单 INVOICEDETAIL(ITEMID, InvoiceID, Quantity, Price) 和子表单 ALLITEMS(主键 ITEMID 和子表单只读)。

INVOICE 通过 InvoiceID 字段链接到 INVOICEDETAIL,而 INVOICE 未链接到 ALLITEMS,因此所有项目都显示在 ALLITEMS 中。

我希望用户能够双击 ALLITEMS 子表单上的项目,并将项目添加到 INVOICEDETAIL 子表单中。可能会弹出一个对话框让用户在 INVOICEDETAIL 中输入数量和价格,或者在 INVOICEDETAIL 中设置焦点让用户输入此信息。

你能帮忙吗?

【问题讨论】:

【参考方案1】:

AllItems ID 控件的双击事件中可能有这样的东西:

Me.Parent.[InvoiceDetail Subform Control Name].SetFocus
DoCmd.GoToRecord acActiveDataObject, , acNewRec
Me.Parent.[InvoiceDetail Subform Control Name].Form.ID = Me!ID
Me.Parent.[InvoiceDetail Subform Control Name].Form.Price.SetFocus

或者,运行附加查询:

strSQL= "Insert Into InvoiceDetail (ID, Price) " _
      & "Select ID, Price From AllItems " _
      & "Where ID=" & Me.ID

CurrentDB.Execute strSQL, dbFailOnError

然后您需要重新查询 InvoiceDetail 子表单并找到相关 ID。

【讨论】:

以上是关于如何搜索子表单并使用数据在另一个子表单中添加记录的主要内容,如果未能解决你的问题,请参考以下文章

按钮搜索子表单,然后在主表单中找到记录(Access VBA)

在子表单中搜索值 (vba Access 2013)

当从一个子调用但另一个子调用时添加控件的子工作

仅重新查询数据表视图表单中的一条记录 (MS Access)

从 Access 中的另一个子窗体更改子窗体的记录源

如何将自动填充的表单记录(从另一条记录创建)添加到访问表中?