Castiel
Castiel

Reputation: 75

VBA update subform recordsource

Quick and easy one (Probably) for you.

My home form has a lot of sub forms within tab controls. Some of these sub-forms have their own sub-form based off a query and that query has criteria input control on the parent form.

As you can imagine upon loading the home form I would have to enter all the parameters in pop-up boxes as the subforms/queries are also loading.

My work-around for this is setting those query sub-forms recordsource to "" Then once the user control that applies the where condition is updated it changes their record source to the query.

Only, my code (Below) doesn't work. And After half hour of staring at it I can't figure out why, it produces no errors it just does nothing.

All fields/records just have #NAME?

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

I also tried the following:

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

Again no results, nothing... All fields/records just have #NAME?

Hopefully I've missed something simple otherwise I'll have to rethink the entire form designs

Upvotes: 0

Views: 4099

Answers (1)

Gustav
Gustav

Reputation: 55806

RecordSource is a string:

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

To refer to a control on the subform:

Value = Me![SubformControlNAME].Form![txt_EventID].Value

Upvotes: 2

Related Questions