Ver Mensaje Individual
  #1  
Antiguo 12-11-2014
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Reputación: 20
Delphitest Va por buen camino
Sentencia SQL con varios campos

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
Imágenes Adjuntas
Tipo de Archivo: jpg BuscarCliente.jpg (35,1 KB, 4 visitas)
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita