No one asked my opinion of how dates should be formatted. In my mainframe days, we ALWAYS stored dates as yyyymmdd OR yyyyddd so we could compare and sort without having to format anything.
Dates are formatted for the convenience of humans. Internally in Access and other RDBMS, the dates are stored as double precision numbers and NEVER formatted prior to performing any operation. Each implementation has a different origin date. For Access, the zero date is 12/30/1899. For SQL Server I think it might be 1/1/1900. To me, it makes sense to have the origin date 12/31/1899. I have no idea why each team chose what they chose. Dates should only be formatted when needed for human consumption or when working with SQL strings.
That said, SQL Server ASSUMES mm/dd/yyyy to be the standard format. Again, no one consulted me so for anyone in the world where your default date format is not month, day, year, you have to be aware of the issue and Format() your STRING dates to mm/dd/yyyy or yyyy/mm/dd when passing them to SQL but ONLY format when working with a string.
Select ...
From ...
Where MyDate > Forms!yourform!yourdate
OR
Select ...
From ...
Where MyDate > SomeOtherDateField
Work fine as stored querydefs. Access knows yourdate and SomeOtherDateField are a date data type and that's what it passes to the query rather than a formatted string.
However, if you were to build this exact same query in VBA, you MUST format the date yourself
strSQL = strSQL & " Where MyDate > #" Format(Forms!yourform!yourdate, yyyy/mm/dd) & "#"
There is a certain logic to this distinction once you understand the issue and that in the first example you are referencing objects but in the second, you are working with a string.