Por otro lado y retomando lo que dijo Caral, porque no lo hace con DateTimePickers?? en si estos se pueden manejar por teclado (y mas fácil diría yo), y ademas no construiría la SQL, mas bien mandaría parámetros... algo como el siguiente ejemplo:
Código Delphi
[-]
var
consulta:string;
begin
if ECodigo.Text<>'' then
begin
consulta:='select * from almacen where nro_ticket=:codigo AND fecha_presentacion between :f1 and :f2';
ModuloDatos.IBQBusqueda.SQL.Add(consulta);
ModuloDatos.IBQBusqueda.ParamByName('codigo').asString := Ecodigo.text;
ModuloDatos.IBQBusqueda.ParamByName('f1').asDate := DateTimePicker1.Date;
ModuloDatos.IBQBusqueda.ParamByName('f2').asDate := DateTimePicker2.Date;
ModuloDatos.IBQBusqueda.Active:=True;