Thanks for replying.
I am a new user, unexperienced. What do you mean by unbound form?
On the main database folder, select Forms.
Then click on New.
When the New Form dialog opens select Design View.
Do NOT enter anything in the Table/query drop down box.
When the design view of the form opens, click on the Toolbox button.
If the Tool wizard button (the wand with some stars) is down, click on
it (to raise it).
Then click on and drag the text control button (Ab) onto the form.
Repeat for the second text control.
Display each controls property sheet.
Set the Format Property of each to Short Date.
Name one "StartDate", the other "EndDate" (without the quotes).
From the toolbox, select and drag the command button onto your form.
In the ToolBox, click on the wizard again to depress it.
Now show the command button property sheet.
Click on the Event tab.
On the Click line, write:
[Event Procedure]
Click on the little button with the 3 dots that appears on that line.
When the code window opens, the cursor will be flashing between 2
already existing lines of code.
Between those 2 lines, write:
Me.Visible = False
Save the changes by closing the window.
Name the form "ParamForm" (without the quotes).
Save the form.
Now open the query.
On the DateField criteria line, write:
Between forms!ParamForm!StartDate and forms!ParamForm!EndDate
Save the query.
Repeat on any other query used in the report, sub-report, chart, etc.
Then open the report in design view.
Show the report's property sheet.
On the Open line, write:
[Event Procedure]
Click on the button with the 3 dots on that line.
When the code window opens, the cursor will be flashing between 2
already existing lines of code.
Between those 2 lines, write:
DoCmd.OpenForm "ParamForm", , , , , acDialog
Close the code window.
Then do the same thig in the report's close event, writing:
DoCmd.Close acForm, "ParamForm"
Save the changes and that should be all you need do.