I would build a form with 2 unbounded fields to accept start and end dates.
Here is a quick and dirty way that you can do from a scrip:
Var
Q Query
sStartDate String
dStartDate Date
lError Logical
dEndDate Date
sEndDate String
EndVar
;Get start date
sStartDate = ""
sStartDate.View("enter a day"
;Verify if user entered a value
If sStartDate = "" Then
MsgStop("Error","No date is entered."

Return
EndIf
;Verify the entered value is a valid date.
lError = False
Try
dStartDate = DateVal(sStartDate)
OnFail
lError = True
EndTry
If lError Then
MsgStop("Error",sStartDate+". Invalid date."

Return
EndIf
sStartDate = Format("DM2,DD2,DY3",dStartDate)
;Copy the above codes and change startdate to Enddate
;
;Query
Q=Query
table.db | Start Date | End Date |
Check | >=~sStartDate | <=~sEndDate |
EndQuery
If Not Q.ExecuteQBE() Then
MsgStop("Error","Cannot execute query."

Return
EndIf