What you discovered is that a date time field in a table includes the time. So you weren't getting an exact match when you used the equal operator because of the time in the field.
In your last example you coule have done:
Where ComplaintDate >= #03/09/2005#
It's not likely that you'd ever get exactly equal to 03/09/2005.
BTW, if you wanted just 3/9 you'd code:
Where (ComplaintDate >= #03/09/2005#) and (ComplaintDate < #03/10/2005#)
Your Format function makes it easier to point to a single date.
Randall J Weers
Membership Vice President
Pacific NorthWest Access Developers Group