Step 1:
Create a form that contains the information the user may want to query on. For example,
1. You might have 2 text boxes that represent a date range (i.e. represents patients admitted between these dates).
2. You might have one or more multi-select list boxes (i.e. User selects which departments he/she wants included in their reports)
3. Whatever else you think the user may want
Step 2:
After the user selects their criteria, they will either press a button to print the report or save the criteria as a query. Either way, you will then build a SQL statement based on the items selected. For example, suppose the user enters a date range in the 2 text boxes (txtBeginDate, txtEndDate). Your code would build the Where clause for the SQL select statement assigned to the report. Your Where clause might look something like this:
Dim strWhere as string
Dim strSQL as string
strWhere = vbNullString
if (not isnull(txtBeginDate) and (not isnull(txtEndDate)) then
strWhere = "Where dteAdmitted Between #" & txtBeginDate & "# AND #" & txtEndDate & "#"
End if
If (reportselected = "this report"

then
strSQL = "Select * From tblPatient " & strWhere & ";"
end if
Now that you have the SQL Select statement created, save it as a query (user could assign a name to the query if you like). There are several posts explaining how to build a Where clause using multi-select list boxes and saving them as queries. Here's one of them thread181-324343. (Lot of mistakes made in the thread I recommended, but it gets the job done).
Step 3
Open Microsoft Word, create a new document, and select Mail-Merge. From Mail-Merge, select the database that contains the query you just created. Now build your report.
Hint: When creating SQL select statements via code, I find it a lot easier to user the Query builder to build it for me, then copy and paste it in my code. This way I know the SQL statement works prior to inserting it into my code.