Well, I think the first step is to think through the implications of what you just asked for.
If you open the DB and it is the first of the month (which you can determine from the DatePart function, look it up in the Help files), you open the reports. So what? Are you planning to save them to files? If so, do you want only the first person who opens the DB to generate the files? And if so, does the second person (who might have been the person really needing the reports) see nothing? Or do you regen the reports and save them a second time.
Please reconsider your question.
The way I would do it is to think of what I really wanted. Suppose, for the sake of argument, that on May 1st, I want to see April's monthly report. To specify that takes a couple of steps.
Determine the day of the current month using DatePart.
Add one day to that day number.
Use DateAdd (DateSubtract?) to find the LAST day of the previous month.
Determine that day's day number.
Subtract one from THAT day number.
Use DateAdd (DateSubtract) to find the first day of that same month.
Generate the report based on the starting and ending days of that month, possibly as parameters to a parameter query that will drive the report.
But it is possible that you were asking for something else. Your question seemed a bit disjointed to me.