Do you have premium license? If so I suggest using Office 365 Outlooks Get emails (V3) -action for this since regular Outlook retrieve email messages -action does not have date filter.
Get emails (V3) has Search Query field where you can filter the date received like so:

To have the date dynamic use Convert text to datetime -action to convert the date from the form to yyyy-MM-dd format.

Then use that variable to Get emails (V3) search query

Also specify the subject in the advanced

And since you said you get just one of those emails a day that has that subject then it should only receive one item.
Then use Get Attachemnt (V2) to get that specific attachment. You get the message id and attachment id from the GetEmailsV3Response

Message Id: %GetEmailsV3Response['value'][0].id%
Attachment Id: %GetEmailsV3Response['value'][0]['attachments'][0].id%
Then you can use Convert Base64 to file -action to download the attachment file to the folder you want

Base64 encoded text: %GetEmailsV3Response['value'][0]['attachments'][0].contentBytes%
Flow overall:

If you don't have premium license or for some other reason need to use other than Office 365 Outlook -actions you have to loop all the messages to find correct date. So first you get all the emails with same subject and loop them all to find the one with the date from the form. That will be very time consuming though.
Check this blog post for the idea:
https://www.samurai-emblem.com/2023/08/03/power-automate-desktop-mail-filter-date-from-to/