Okay, maybe I understand what you want.
In a loop that will open report for each day of month, pass date value to report with OpenArgs. Textbox in page header has expression: =[OpenArgs]
How will month and year be determined - user input?
Here is example assuming January 2025 is the month to report.
Code:
Sub DailyReport()
Dim d As Date, x As Integer
d = #1/1/2025#
For x = 1 To Day(DateSerial(Year(d), Month(d) + 1, 0))
DoCmd.OpenReport "MyReport", acViewPreview, , , acDialog, Format(DateSerial(Year(d), Month(d), x), "dddd, mmm d yyyy")
Next
End Sub
If you prefer to send directly to printer, remove acViewPreview and acDialog parameters.
If you want to produce a single report with all days of month, that would probably require table approach suggested by madpiet. VBA could purge and populate a 'temp' table with appropriate date values or create a record for every date from first date in database to whenever in the future and leave them.
A query can actually dynamically produce a dataset of all dates in a given range but can perform slowly.