First avoid naming fields the same name a reserved words. Using date as a field name will cause you many headaches.
To accurately get three years from a date use the DateAdd(). This will properly handle leap years. It will add or subtract from a date.
Example for subtracting three years:
Code:
DateAdd("yyyy", -3, Date() )
To test for a date in a date/time field use IsDate()
Example:
Code:
DatePast3years: IIf( IsDate([date]), IIF( [date]< DateAdd("yyyy", -3, Date() ),"Greater Than 3 Years","Less Than 3 Years"), "no date entered")