1 you can import the report and link the tables (do not import table) into user's blank mdb. then user can run the report at any time.
2 you can set a filter in the report when opening it,
2.1 create 2 textboxes in your form: startDate and EndDate
2.2 set default value for these 2 textboxes to: =Date() - Day(Date()) + 1 and =date()
2.2 create a button in your form, button1
2.3 code in button1's cick event:
Code:
Private Sub Command1_Click()
DoCmd.OpenReport "reportName", acViewPreview, , "intime>=#" & startDate & "# and intime< 1+#" & endDate & "#"
End Sub
2.4 remove and a.intime >=STARTDATE and a.intime<ENDDATE+1 from the query
2.5 in report's design view, set filter on.
3 the simplest way is to setup validation rule for the two textbox, e.g. rule for endDate: >=cdate([startDate])
if you also want to set validation rule for startDate: <=cdate([endDate])
the validation message poped by Access is not very friendly. if you want to check those two dates by yourself, you may use your code in the after_update event of the textboxes to check the validation.