There's a bit more to it than that.
If the database is not open at 9 am, it's not going to display anything. If
you open it at 9:05, you've already missed it. If you change the logic so it
runs the report as soon as the database is open and identifes any records
dated today, that's going to run repeatedly if you run the program several
times throughout the day. Worse if you don't open the database one day
(weekend, public holiday, illness), there are records that slip past without
any reminder.
The core idea might be to create a form (or report) that uses a query where
the DateOfPayment = Date(). Cancel its Open event if there are no records.
Create a function to OpenReport, with error handling to handle (and ignore)
error 2501 (then open was cancelled.) Call this function in your AutoExec
macro, or the Open event of your startup form.
(That's not dealing with the missed reminders, nor multiple reminders each
time you start on the same day.)