So, let's see if I got this straight:
You have a Table, let's call it Table1.
From that table you have a Query (let's call it Query1) that selects records from Table1 based on Date Criteria (my guess is that it is a Parameter Query, am I right?). Then from that Query1 there are 4 "sub queries" which break the data from Query1 into four different time blocks. Your subforms are then run off of these 4 "sub" queries.
Now when you open the report, it prompts you to enter the date 4 times instead of just once.
Can we confirm:
The date parameter should just be on Query1, not on the 4 subqueries. Since the 4 sub queries call on Query1, whenever one of these queries is run, it asks for the date.
That is a very interesting scenario. I have done stuff like this in the past, but it requires VBA programming to create the SQL code necessary to run the queries. Basically, you create a "Criteria Form" that the user fills out (instead of a parameter query). VBA code then builds the queries behind the scenes. If you are not familiar with VBA code, you may not be comfortable with that solution, though.
Maybe someone else can suggest a non-VBA solution?