Lets say you have three subform controls each with the same form in them, but you want to give each a seperate recordsource. If the subform controls are "subFrmOne", "subFrmTwo", and "subFrmThree", On the forms load event
me.subFrmOne.form.recordsource = "qryOne"
me.subFrmTwo.form.recordsource = "qryTwo"
me.subFrmThree.form.recordsource = "qryThree"
Here is another trick I use if each subform control has the same form in it. I add a public variable at the top of the form's code.
public strSubCntrlName as string
Then I add to the above code for the main form's on load event.
me.subFrmOne.form.recordsource = "qryOne"
me.subFrmOne.form.strSubCntrlName = "subFrmOne"
me.subFrmTwo.form.recordsource = "qryTwo"
me.subFrmTwo.form.strSubCntrlName = "subFrmTwo"
me.subFrmThree.form.recordsource = "qryThree"
me.subFrmThree.form.strSubCntrlName = "subFrmThree"
What this allows you to do is determine what control the subForm is in, and do something different depending on which one it is in. For example you could have a cmd button on the subform to do some of your processing, but you need to know which subform control you are in.
select case me.strSubCntrlName
case "subFrmOne"
do something ..
case "subFrmTwo"
do something
case "subFrmThree"
do something
case else
do something
end select
By designing your form this one you only have one subform, that appears multiple times on the form, each instance has its own recordsource, and each instance can execute the same code differently.
You could of course just build three subforms, and conceptually that would be easier. This technique is tidy and efficient because you only have one subform to build and maintain.
One more thing a subform on a tab control is referenced no differently then a subform on the main form. The tab control has no affect. Something like
me.subFrmControlName.form