If the default instance of a form is not found, this most likely means that it does not have a Class Module. For example, suppose you have two forms in a database, frmMain and fsubOther, where frmMain has a module and fsubOther does not. Also suppose that this database has no user-defined classes. In this example, only one class (besides globals) will appear in the Object Browser for the Project/Library defined for the current database. This class will be called Form_frmMain.
This implies that fsubOther cannot be manipulated programmatically. Any attempts to manipulate fsubOther directly will generate run-time errors. If, however, fsubOther is a sub-form of frmMain then it can be manipulated through code. Suppose that the Name property of the Sub Form is fsubOther. We can make sure its FilterOn property is False with the line
Form_frmMain.fsubOther.Form.FilterOn = False
We now can use the Form property of the Sub Form object to manipulate fsubOther. Note that there are some limitations: the most glaring constraint is need to use the Controls collection to refer to the sub-form controls. For example, the following code incorrectly attempts to refer to the ControlSource property of the Text Box txt1 on fsubOther:
'This is incorrect:
With Form_frmMain
.fsubOther.Form.txt1.ControlSource = "[Fname]"
End With
In this example, we can only refer to txt1 via the Controls collection with the lines
'This is correct:
With Form_frmMain
.fsubOther.Form.Controls("txt1").ControlSource = "[Fname]"
End With
Note that VBA does not "know" whether this particular member of the Controls collection has a ControlSource property. The use of the Controls collection may noticeably reduce performance due to late-binding issues. If this is the case simply set the Has Module property of the form to Yes and refer to the default instance of the form directly.