The query is not that smart, everytime it runs it has to recalculate on the prompts. This is why if you have the values on a form, you can set the query to look at the form.
i.e. startDate endDate
If a little form came up asking for start date and end date and included a button to preview report and a button to print report. You could set the query to use
between forms!printRequest!startDate and forms!printRequest!endDate under dateReceived. Then the report would not prompt. Also you can set the prompts to a temp table so the system remembers. You are also able to validate any information before running the report. I just helped another user validate that the report had records before showing it, otherwise it provided a message box that the report had no data. Alot can be done here to make the user experience alot more enjoyable.