Your form has a button click event to open a report? Then you could use the expression (or one like it) for the control that you're showing in your pic. Then pass that literal string to the Open Args parameter in the DoCmd object's Open Report method. In other words, if txtMyCriteria is a report control for holding the string, you'd do
DoCmd.OpenReport "rptMyReport", acViewPreview, , , , "[Gender] = 'Male' AND [LOC] Like 'UPP'"
then in the report open code, make the textbox that will hold the string = Me.OpenArgs as in
Me.txtMyCriteria = Me.OpenArgs
The red part should be the OpenArgs parameter if I got the parameter positions correct.
Note: your process should determine if the report is already open because if it is, it will simply restore it to view and won't reflect any changes to the criteria on the form. I believe that would be
Code:
If Application.CurrentProject.AllReports ("rptMyReport").IsLoaded Then DoCmd.Close "rptMyReport"
DoCmd.OpenReport "rptMyReport", acViewPreview, , , , "[Gender] = 'Male' AND [LOC] Like 'UPP'"
All suggested code here is "air code" (from my small head), and is untested for your situation. Aside from assuming the report view would be print preview, I didn't provide any other parameters other than the default ones when opening your report.
EDIT: If your criteria string can be long, it may be easier to read your code if you assign the string to a variable, such as
strCrit = "[Gender] = 'Male' AND [LOC] Like 'UPP'" (strCrit is the string variable that you would declare)
DoCmd.OpenReport "rptMyReport", acViewPreview, , , , strCrit