You don't want users to have to know the EXACT name for your report. You can make a query that selects reports and lets the user choose from that. However, isn't there always a "however". To use this method, you need to create a naming scheme so that the RowSource query only selects main reports and not subreports as well as only the reports you want to include in this option.
A slightly better technique, is to make a separate table and add to that the report name which should be named using the naming standard for all object names and will not be user friendly and a user friendly name. The combo will then show the sorted user friendly names, and the OpenReport, will use the hidden computer friendly name.
That leaves us with filtering options. If the forms don't require filters, then there is nothing more to say but if the report does require filters, you need to provide a way on that form for the user to enter them. I've included a picture of one of my report open dialogs. Notice that the highlight is on the third item in the list. It shows four select options,
Care Manager which is optional.
Care Plan Status which is required - you can tell that because the name is bolded and underlined.
Status (which refers to items in the care plan) and is shown as an option group
Thru DT which defaults to the current date.
Then there is an Output To option and an Run button.
The report list and the options are defined in a table that powers the form. I can post a copy of the form and the table that powers it. It is not generic. I customize it for each new application. It is technically not normalized since the table will change with each new application but it is based on the fact that even complex applications have a limited set of criteria options used for most reports and that number is relatively small. I've never used more than a dozen so it is a quite manageable number.
The gray background samples are from a different app. And following that is a picture of the form used to enter the selection criteria and the last form is the recordsource behind the gray picture as well as the data entry form.
View attachment 106898View attachment 106899
View attachment 106900View attachment 106901