Yes, I have done this before. This requires a table of reports. Description, Report Name, Active, etc. This table is kept up to date with your reports that are to be used by the user.
Next step create a new form called frmReportsSelection. This form starts out with an Unbound Combobox at the top that has as its RowSource a query of the Active reports from your table. Column 1: Description, Column 2: ReportName, Column 3: Active = True Bound column would be Column 2. Column Widths are 2";0;0
Name the combo ReportsCombo
Now after the User picks a report to be printed, VBA code in the AfterUpdate event procedure would execute:
Select Case Me.ReportsCombo
Case "rptReportName1"
me.txtbox1.visible = true
me.txtbox2.visible = true
me.txtbox3.visible = true
me.txtbox1.setfocus
Case "rptReportName2"
'. . . same for as many reports as necessary
End Select
After each report is picked from the combobox the txtboxes that are necessary for user prompted selection input are made visible. After updating the txtboxes with data a Print report button at the button of the form would be selected by the user to run the following code:
DoCmd.OpenReport Me.ReportsCombo, acViewPreview
The queries for the reports would refer back to this open form with the following syntax:
FORMS![frmReportsSelection]![txtbox1]
Your Reports will then run using queries that are relating back to this form and the data that the user has entered into the visible txtboxes appropriate for the form. The boxes for all the reports will overlay and get a little confusing on the form in design view but many of the controls can be used by more than one report.
Let me know if this sounds like what you would like to do.
Bob Scriver