VBA更新子窗体记录源

时间:2019-04-26 13:12:02

标签: vba ms-access access-vba

一个方便快捷的(可能)为您服务。

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

您可以想象在加载主表单时,由于子表单/查询也正在加载,因此我必须在弹出框中输入所有参数。

为此,我的解决方法是将那些查询子表单记录源设置为“” 然后,一旦更新了应用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?

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

1 个答案:

答案 0 :(得分: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