Each report has to be based on something, although in this case, a query or sql statement might be better than a set of table records that are filtered. So if each report has its own query (or if preferred, table), open each report from the form and filter each report according to the date range.
Or pass each sql statement, using the dates as part of the WHERE clause, as the data source for each report as you open it.
What I'm not getting is, if the date variables are truly global (i.e. you know the difference between a project level vs. form level variable) then I see no need for a function to get a global variable value. It would be like using a device to reach for the salt when it is right under your nose. I have to wonder if the problem is the scope of the "public" variable. You realize that declaring a variable in a form (for example) as Public does not make it visible to any other form, report or module?
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.