D'accordo con il commento di SirRufo qui. La risposta corretta a "come faccio a farlo?" è "non farlo; è il modo sbagliato di farlo".
Se inserisci i valori direttamente nella query in questo modo, gli hacker possono trovare un modo per inserire nella query elementi che vengono interpretati come Comandi SQL. Questo è noto come Iniezione SQL , ed è stato responsabile di miliardi di dollari di danni negli ultimi decenni. (Non esagero.)
Il modo giusto per farlo è separare in modo netto il codice SQL dai dati, utilizzando i parametri così:
ADOQuery1.SQL.Clear;
//: before an identifier specifies a parameter
ADOQuery1.SQL.Add('SELECT tbl.emailAddress, tbljob.Time FROM '+
'dbwindowwash.tblclient, dbwindowwash.tbljob, dbwindowash.tbljobclientworker '+
'WHERE tbljobclientworker.jobID = tbljob.jobID AND '+
'tbljobclientworker.clientID = tblclient.clientID AND tbljob.Date = :date';
//parse the query and find parameter declarations
ADOQuery1.Prepare;
//set a value for the parameter
ADOQuery1.ParamByName['date'].AsDateTime := TodaysDate;
ADOQuery1.Open
L'esatta sintassi su come impostare il valore di un parametro può differire da un tipo di set di dati all'altro, ma questo dovrebbe darti un'idea di base.