La condición esta mal. Ponle >= y <=
Código Delphi
[-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
if (not cbFiltrar.Checked) then begin
ClientDataSet1.Locate('Campo4', Edit1.Text, [loCaseInsensitive, loPartialKey]);
Exit;
end
else begin
if (Edit1.Text = '') then
begin
ClientDataSet1.Filtered := false;
ClientDataSet1.Filter := '';
end
else
begin
try
ClientDataset1.Open;
ClientDataSet1.Filter := '(Campo4 >=' +QuotedStr(Edit1.Text) +') and (Campo5 <= '+QuotedStr(Edit2.Text)+ ')';
ClientDataSet1.Filtered := True;
except
ClientDataSet1.Filtered := false;
ClientDataSet1.Filter := '';
end;
end;
end;
end;
Te Explico si es (igual Edit1.text) no podra ser (igual a edit2.text)
Asi es que lo que tienes que hacer es, poner entre rangos osea:
de 1 a 100 solo quiero de 10 a 20 seria asi
if (>= 10) and (<= 20) then ...
Lo mismo con los flitros.
Saludos