Sorry but format() is NOT the answer to view more. is almost never the answer for anything. The Format() function turns a date or number into a string and that means the date/number will act like a string. Sorting will present this list - 1,10, 11, 12, 13, 2,20, 21, 22, 23 ,3,30, 4, 5, 6, 7 , etc which is unlikely to be what you had in mind. Same problem with the date. Logically, a date sort is year, month, day. However sorted as a string, if your format is month, day, year then all the january 1sts will come before all the January 2nds, etc rather than in human understandable order.
Using the Format() property in a query or ControlSource will render the field not updateable.
If you want to apply a format to a control or query column, use the format property. The only time I would ever use Format() in a query is if I were exporting the data to Excel and I wanted to control the date format or limit the number of decimal places for a number. This is necessary because the TansferSpreadsheet ignores the Format Property of the query columns so you have to force the issue.
Unless I need more than four decimal places, I always use the Currency data type. This limits the decimals to four and eliminates floating point rounding issues.
If you want a fixed number of decimal places and you do multiplication or division, you MUST round in the calculation so that only the desired number of decimal places is stored.