Ver Mensaje Individual
  #1  
Antiguo 26-08-2013
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Reputación: 18
jafera Va por buen camino
Buscar un registro por diferentes campos

Buenas a todos.

Necesito buscar un registro dentro de una tabla pero por diferentes campos, os explico tengo un form con un grid en el que se van colocando los registros seleccionados, este form tiene un edit en el que tecleo el nombre, la licencia, el dni o el codigo uci y mediante una consulta filtro los registros que cumplan la condicion para poder elegir el que corresponda, por ejemplo si tecleo gomez, me manda en un for auxiliar todos los registros que empiezan por gomez, si tecleo 12345678 me busca primero en el nombre, como no lo encuentra tendria que buscar en el dni pero me devuelve la consulta en blanco.

Este es el código:
Código Delphi [-]
 
procedure TF_Inscripcions.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
        If (Key=#13)  then
        begin
                F_BuscarInscripcio:=TF_BuscarInscripcio.Create(Application);
                begin
                        F_BuscarInscripcio.BuscarCorredor.Close;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Clear;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('SELECT DORSAL, NOM_LLARG, DNI, LLICENCIA, CODIUCI, NACIO, CLUB, ABR_CLUB, PUBLICITAT, EDAT, CATEGORIA FROM CTR0003');
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('WHERE NOM_LLARG STARTING' +QuotedStr(Edit1.Text));
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('ORDER BY NOM_LLARG');
                        F_BuscarInscripcio.BuscarCorredor.Open;
                        If F_BuscarInscripcio.BuscarCorredor.Recordcount>0 then
                        Abort;
                end;
                begin
                        F_BuscarInscripcio.BuscarCorredor.Close;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Clear;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('SELECT DORSAL, NOM_LLARG, DNI, LLICENCIA, CODIUCI, NACIO, CLUB, ABR_CLUB, PUBLICITAT, EDAT, CATEGORIA FROM CTR0003');
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('WHERE LLICENCIA STARTING' +QuotedStr(Edit1.Text));
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('ORDER BY LLICENCIA');
                        F_BuscarInscripcio.BuscarCorredor.Open;
                        if F_BuscarInscripcio.BuscarCorredor.RecordCount>0 then
                        Abort;
                end;
                begin
                        F_BuscarInscripcio.BuscarCorredor.Close;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Clear;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('SELECT DORSAL, NOM_LLARG, DNI, LLICENCIA, CODIUCI, NACIO, CLUB, ABR_CLUB, PUBLICITAT, EDAT, CATEGORIA FROM CTR0003');
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('WHERE DNI STARTING' +QuotedStr(Edit1.Text));
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('ORDER BY DNI');
                        F_BuscarInscripcio.BuscarCorredor.Open;
                        if F_BuscarInscripcio.BuscarCorredor.RecordCount>0 then
                        Abort;
                end;
                begin
                        F_BuscarInscripcio.BuscarCorredor.Close;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Clear;
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('SELECT DORSAL, NOM_LLARG, DNI, LLICENCIA, CODIUCI, NACIO, CLUB, ABR_CLUB, PUBLICITAT, EDAT, CATEGORIA FROM CTR0003');
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('WHERE CODIUCI STARTING' +QuotedStr(Edit1.Text));
                        F_BuscarInscripcio.BuscarCorredor.SQL.Add('ORDER BY CODIUCI');
                        F_BuscarInscripcio.BuscarCorredor.Open;
                        if F_BuscarInscripcio.BuscarCorredor.RecordCount>0 then
                end;
                F_BuscarInscripcio.Show;
        end;
end;
No se si los Abort esan bien colocados o donde puede estar el fallo, pero no me salta de un bloque a otro si el recordcount vale > 0

Gracias y saludos

Josep
Responder Con Cita