Buenas Tardes,
pese a que hay mucha información en el foro relacionada con lo que busco, no soy capaz de ponerlo en practica y hacer que funcione.
He creado un Form para buscar en una Query un determinado cliente, para ello lo que pretendo es a través de varios edit y del evento onchange ir filtrando un DBGrid de tal manera que a medida que vaya escribiendo por ejemplo el nombre, los registros de la query se vayan adaptando a la búsqueda.
Pongo un pantallazo del Form y el codigo que estoy probando:
Código Delphi
[-]procedure TFBuscaCliente.Edit1Change(Sender: TObject);
var filtro1 :String;
var filtro2 :String;
var filtro3 :String;
var filtro4 :String;
var filtro5 :String;
begin
If (Edit1.text <> '') then
filtro1 := 'nombre like ' + QuotedStr('%' + Edit1.Text + '%');
If (Edit2.text <> '') then
filtro2 := 'Apellidos like ' + QuotedStr('%' + Edit2.Text + '%');
If (Edit3.text <> '') then
filtro3 := 'DNI like ' + QuotedStr('%' + Edit3.Text + '%');
If (Edit4.text <> '') then
filtro4 := 'Provincia like ' + QuotedStr('%' + Edit4.Text + '%');
If (Edit5.text <> '') then
filtro5 := 'Telefono_Fijo like ' + QuotedStr('%' + Edit5.Text + '%');
IF (Edit1.Text = '') and (Edit2.Text = '') and (Edit3.Text = '') and (Edit4.Text = '') and (Edit5.Text = '') then
begin
TBuscarCliente.close;
TBUscarCLiente.SQL.text := 'Select * from clientes order by nombre';
TBuscarCliente.open;
end
else
begin
TBuscarCLiente.Close;
TBuscarCliente.SQL.Clear;
TBUscarCLiente.SQL.text := 'Select * from clientes where ' + filtro1;
TBuscarCliente.Open;
end;
end;
http://www.clubdelphi.com/foros/atta...1&d=1415810826
Con lo que tengo hecho funciona perfectamente pero solo para el campo nombre (edit1) y si lo cambio para el apellido tambien funciona.
Lo que busco es, si se puede, que tenga en cuenta todos los edit a la hora de hacer el filtro. Asi si pongo "juan" en el nombre y "gon" en apellidos la busqueda sería más precisa.
Antes de preguntar he hecho combinaciones de variables e intentando concatenar con "and" la condición de la sql pero no doy con ello.
Si me pudierais orientar sería de agradecer.
Un saludo