If you want to force users to filter the form before showing any results, do not bind SubForm to the request (leave the RecordSource form empty) and do it in code: you can simply set this in your Search button click event:
Me.Sub.RecordSource = "subResultType_1"
Still, make Subform invisible (set its Visible = No property in design mode) and show it as soon as the user clicks Search:
Private Sub btSearch_Click() Me.Sub.RecordSource = "subResultType_1" Me.Sub.Visible = True End Sub
If you want to make more complex filters, you can also do something like:
Private Sub btSearch_Click() Me.Sub.RecordSource = "SELECT * FROM subResultType_1 WHERE " + strWhere Me.Sub.Visible = True End Sub
Something like this will allow you to build complex WHERE queries from code based on a bunch of user input.
For example, you may have several text fields in which the user can enter information on certain fields to narrow the search.
Then you create a WHERE clause from the contents of these text fields, for example:

This becomes as soon as the user enters some filtering criteria:

source share