just remember that access always saves a date as an american date (mm-dd-yy) and you are english (uk?). My best guess is that the type mismatch errors come from the difference between the dates. Always convert them.. for example: Dim db as database Dim rs as recordset Dim SQL$ SQL$ = "SELECT * FROM table WHERE startdate = #" SQL$ = SQL$ & Format(searchdate,"mm-dd-yy") & "#" Set db = opendatabase(databasename) Set rs = db.openrecordset(SQL$)Return