A family of Microsoft relational database management systems designed for ease of use.
1. I'd assume that Marshall's statement 'as long as the fabric select form is only opened from one of your subforms' doesn't hold good, as your original question only makes sense if one of a set of subforms can arbitrarily be the one you need to reference when assigning values to its controls. To use this approach you'd need to pass a reference to the subform to the FabricSelect form as its OpenArgs property when opening it. The OpenArgs property can then be used to reference the subform when assigning the
2. If you adopt the alternative of opening the FabicSelect form in dialogue mode, however, you cannot assign a value from it after it's been closed as he suggests What you have to do in that situation is not close the dialogue form but hide it. This also causes code execution in the calling procedure to recommence execution. You'd then close the dialogue form after assigning the value from it:
DoCmd OpenForm "FabricSelect", WindowMode:=acDialog
Me.Repeat = Forms!FabricSelect.Repeat
DoCmd.Close acForm, "FabricSelect"
Hiding a dialogue form like this rather than closing it is a simple and efficient method, and I'd recommend you try it.
3. Coming back to the method I suggested, which is a solution I've used successfully in similar contexts a number of times, the sequence of events is crucial. Having declared the object variable publically you must initialize it by means of the Set command so that it retunes a reference to the subform before you use the variable when assigning a value to a control in the subform.