VBA更新子表单记录源

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

快速简单(可能)适合您。

我的主页表单在选项卡控件中有很多子表单。其中一些子表单具有基于查询的自己的子表单,并且该查询在父表单上具有标准输入控件。

正如您在加载主窗体时所想象的那样,我必须在弹出框中输入所有参数,因为子窗体/查询也在加载。

我的解决方法是将那些查询子表单记录源设置为“”然后,一旦应用了where条件的用户控件更新,它就会将其记录源更改为查询。

只是,我的代码(下面)不起作用。经过半小时的盯着它,我无法弄清楚为什么,它不会产生任何错误,它什么都不做。

所有字段/记录都只有#NAME?

Private Sub txt_EventID_AfterUpdate()
Me.txt_forcefocus.SetFocus
Me.sub_SpeakerOnboarding.Form.RecordSource = qry_SpkrOnboard
Me.Requery
End Sub

我也尝试过以下方法:

Private Sub txt_EventID_AfterUpdate()
Me.txt_forcefocus.SetFocus
Me.sub_SpeakerOnboarding.Form.RecordSource = qry_SpkrOnboard
Me.Refresh
End Sub

再没有结果,没有...所有字段/记录只有#NAME?

希望我错过了一些简单的东西,否则我将不得不重新考虑整个表单设计

vba ms-access access-vba
1个回答
2
投票

RecordSource是一个字符串:

Private Sub txt_EventID_AfterUpdate()
    Me.txt_forcefocus.SetFocus
    Me.sub_SpeakerOnboarding.Form.RecordSource = "qry_SpkrOnboard"
End Sub

要引用子窗体上的控件:

Value = Me![SubformControlNAME].Form![txt_EventID].Value
© www.soinside.com 2019 - 2024. All rights reserved.