如何引用在Access VBA中不可见的子窗体值?

问题描述 投票:0回答:1

我在Access中有一个子窗体,它以多对多关系表示联结表。

具体来说,它基于一个查询,其中包含所有3个表(“人”,“旅程”,“ People_Has_Trips”)的值。子表单(subfrmTripsPeople)是主表单(Trips)的一部分。它显示了联系信息,并包括一个标记为“编辑此人”的按钮,其目的是将“人员”表单打开到子表单中的所选记录。这似乎是正确的选择,只是可以从子表单中编辑字段,以确保用户清楚地打算编辑用户。

Fields in subform

这里是我到目前为止拥有的VBA代码:

Private Sub cmdEditPerson_Click()

Dim selectedPerson As Integer
selectedPerson = Me.subfrmTripsPeople.Form!People_PersonID

DoCmd.OpenForm "People", , , "ID = " & selectedPerson

End Sub

当我进入表单并单击“编辑此人”时,出现“编译错误:未找到方法或数据成员”,在VBA编辑器中subfrmTripsPeople用蓝色突出显示,而Private Sub行则用黄色突出显示。因此,看来我发现了一种不正确的方法。那么,我做错了什么,做这件事的正确方法是什么?

我认为,显而易见的问题是,我引用的是People_PersonID字段,该字段实际上不是子窗体上的字段,尽管我认为它是可访问的,因为它是基础源查询的一部分。但是,突出显示的代码似乎表明我的错误在于我引用该子表单的方式。我看不出这有什么问题,也没有拼错名称或其他任何东西。

非常感谢您提供有关此问题的指导!

vba ms-access subform
1个回答
0
投票

我最终添加了一个TextBox字段(称为invisiblepersonID),该字段的控件源为people_personID,并将其宽度和高度设置为0。变量声明原来是多余的,所以我摆脱了它。这是我的新VBA代码:

Private Sub cmdEditPerson_Click()

    DoCmd.OpenForm "People", , , "PersonID = " & Me!invisblepersonID

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.