CJ already mentioned that dates are stored as double precision numbers NOT STRINGS.
1. Format(....) changes a date data type to a string so it will no longer compare correctly or sort correctly. For example 01/01/2017 will be less than 12/31/2016 because strings are compared/sorted character by character, left to right.
2. Access uses your Windows system date settings to determine how to display dates for human consumption. This has nothing to do with how they are stored. So, unless you specifically use the Format property or the Format() function, dates will be displayed based on the Windows settings. I suggest that you never apply a date format to the date field in the table. Formatting data at the table level obfuscates the actual value and you could spin your wheels for days researching a problem and never realize that the data isn't what you think it is. Only format controls on reports or forms and ONLY if you need the format to be different from the standard Windows setting.
3. If you are NOT using standard US date format as your Windows setting - mdy order, then, when you pass a string date to a query, it MUST be formatted using Format() into mdy or ymd order. This is an SQL rule and it probably exists because the server may be in an area of the world where date formats are different and a choice had to be made. Either use US standard mm/dd/yyyy or something non-ambiguous such as yyyy/mm/dd. and "they" chose door #1.
4. NEVER use a formatted date field in an expression. Always use the raw datetime value (except where noted earlier and you are specifically passing a STRING date to SQL).