btalon,
When you use the docmd.openreport, you don't use any criteria--you've set that prior to the .openreport by either setting the .Sql of the report's Querydef source, which includes all the criteria, or setting the reports Recordsource in code (by first opening in designview, the calling the .Save method, then opening normally).
Really, you can accomplish anything in code for the report if you have the user open the report via a command button (or selecting from a listbox, etc). I've had reports where the grouping levels, fields,label positioning, etc, weren't known until the user selected all his criteria. The report was essentially built from scratch in code prior to the .OpenReport method.
So I'm not sure exactly what else it is you're really looking for--can you be more specific?
--Jim