Your report cannot not open a form to collect criteria then feed that criteria back to the report. You simply use the form to collect the criteria, click Submit, then open the report by passing the criteria in the DoCmd.OpenReport method.
One example might be a report to show employee information. The report's RecordSource will be a query like:
Code:
SELECT EmpFirstName, EmpLastName, Dept, HireDate FROM tblEmployees
If you were to open this report from the DB window, it would display all records in the tblEmployee table. Now let's say that you have a form with three textboxes: txtDept, txtStartDate and txtEndDate. The user fills in the the textboxes with the appropriate information and clicks the Submit button. The code behind the Submit button would look like:
Code:
Private Sub cmdSubmit_Click
Dim strWhere as String
strWhere = "Dept = " & Me.txtDept & " And HireDate Between #" & Me.txtStartDate & "# And #" & Me.txtEndDate & "#"
DoCmd.OpenReport "rptEmployees", acViewReport, , strWhere
End Sub
This will now open the same report as before but rather than displaying all records in the tblEmployees table, it only displays the ones from the specified department and having a hire date between the two dates specified on the form.