【问题标题】:Populate fields in main form from record in subform从子表单中的记录填充主表单中的字段
【发布时间】:2023-03-07 10:47:01
【问题描述】:
在 Access 2016 中,我有一个主表单 ClientInfoForm,其中包含一个子表单 EditTransactions_subform。子窗体在数据表视图中。当用户单击子表单中的记录时,我想填充主表单中的字段。在子窗体的 Click 事件中,我目前有:
Public Sub Form_Click
Forms![ClientInfoForm]![Amendment] = Forms![ClientInfoForm]![EditTransactions_subform].Form![Amendment]
End Sub
我不确定这是否是执行我想要的正确代码。子表单和主表单中的字段名称都是[Amendment]。
提前感谢您的帮助!
霍华德
【问题讨论】:
标签:
ms-access
vba
ms-access-2016
【解决方案1】:
这听起来从头到尾。主表单/子表单的正常使用是在主表单上浏览您的记录,对于每个主记录,子表单将显示所有相关的子记录。您听起来好像总是在子表单中显示子表中的所有记录,并且当您浏览这些记录时,您希望主表单中的信息发生变化。
如果这确实是您想要做的,并且假设这些是绑定表单,那么您需要确保主表单和子表单之间没有链接(在子表单属性上清除条目Link Child Fields 和 Link Master Fields)。在子表单的On Current 事件中,您可以尝试这样的事情(尽管它完全未经测试):
Dim rst As Recordset
Set rst = Me.Parent.RecordsetClone
rst.FindFirst "Amendment = '" & [Amendment] & "'" 'assumes [Amendment] is String, otherwise lose the surrounding quotes
Me.Parent.Bookmark = rst.Bookmark
rst.Close
Set rst = Nothing