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

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

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

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

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

希望您对此问题提供指导!

muma96132 回答:如何引用使用Access VBA不可见的子窗体值?

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

Private Sub cmdEditPerson_Click()

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

End Sub
本文链接:https://www.f2er.com/2890557.html

大家都在问