Mira, no tengo mucha experiencia con Access, pero siempre que lo utilicé ha sido bastante quisquilloso, y creo que podrías probrar agregando paréntesis para eliminar su confusión, pues cuando hay más de una condición en el WHERE, puede marearse. Probá así:
ADOQBuscar.SQL.Add('SELECT * FROM tabla');
ADOQBuscar.SQL.Add('WHERE (Subject = ' + QuotedStr('texto')+') ');
ADOQBuscar.SQL.Add('AND (Start1 = #' + 'fecha' + '#) ');
ADOQBuscar.SQL.Add('AND (Start2 = #' + 'hora' + '#)');
Ya sé que no es muy elegante hacer esto, pero recuerda que como todo producto de Mocosoft, puede tener sus mañas
.