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