Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda con DBgrid pleaseeeee (https://www.clubdelphi.com/foros/showthread.php?t=51676)

pabliyo 24-12-2007 11:13:41

Ayuda con DBgrid pleaseeeee
 
Hola!

Tengo un DBgrid con varias columnas, una de ellas es el nombre de alumnos (nombre completo con apellidos), tengo tambien un boton para buscar dichos alumnos, pero lo que yo quiero es buscarlos por el apellido y no tener que poner el nombre entero con sus dos apellidos........no se si me explico. tampoco se si se puede hacer de esta forma, asique estaría agradecido si me echais un cable

PD:no seais muy duros conmigo que estoy empezando con esto de delphi!!

saludos

Palmiro 24-12-2007 11:55:53

Hola... Creo haber entendido lo que estas preguntando...
No es para reclamarte nada, pero la consultas que estas haciendo es muy facil de encontrarla en el foro, ya que muchos antes que vos la hicieron, ademas encontras la respuesta mas rapido y no debes esperar a que alguien te conteste...

Si es lo que entendi que pides, a ver si esto te sirve:


Código Delphi [-]
procedure TfrmPersonasGestion.cmdBuscarClick(Sender: TObject);
begin
  if txtBuscarApellido.Text <> '' then
  begin
    if rdbApellido.Checked then
     begin
     dsPersonas.DataSet.Filter:= 'PerApe like ' + chr(39)+  txtBuscarApellido.Text+'*'+chr(39);
     dsPersonas.DataSet.Filtered:= True;
  end
  else
    if rdbNombre.Checked then
    begin
    dsPersonas.DataSet.Filter:= 'PerNom like ' + chr(39)+  txtBuscarApellido.Text+'*'+chr(39);
   dsPersonas.DataSet.Filtered:= True;
   end;
end
else
     dsPersonas.DataSet.Filtered:= False;
     lblRegistro.Caption:= 'Registro ' + IntToStr(dsPersonas.DataSet.RecNo) +' de ' + IntToStr(dsPersonas.DataSet.RecordCount);
end;



Bueno espero poder ayudado con tu duda...
Quizas no sea el mejor codigo pero funciona.... te propongo a que lo mejores..

pabliyo 26-12-2007 16:59:42

Creo que no has entendido lo que pretendo hacer, intentare ser más claro. Tengo un DBGrid con varias columnas entre ellas la columna USUARIO en donde se guarda el nombre completo del usuario (nombre completo = nombre+apellido1+apellido2), ejemplo: Paco Martinez Sanchez. Lo que pretendo es filtrar dicha tabla con el primer apellido. Para filtrar tengo un TEdit para introducir el apellido y un boton filtrar y que me salga en la tabla solo el usuario/s con apellido Martinez. El problema es que tengo guardado el nombre completo en una columna, si guardara el nombre en una columna y los apellido en otras dos columnas seria mas facil, pero pretenmdo hacerlo de este modo.

un saludo

Alejandro73 26-12-2007 22:58:52

Busqueda
 
Hola

Creo que lo que trataron de explicar mas arriba es esto

IF @tipo=0
BEGIN
SELECT *
FROM Persona
WHERE (Persona.Apellido_Paterno Like '%'+ @apaterno+'%')
Order By Nombres, Apellido_Paterno, Apellido_Materno
END
ELSE
BEGIN
SELECT *
FROM Persona
WHERE (Persona.identificacion_persona Like @apaterno+'%')
Order By Nombres, Apellido_Paterno, Apellido_Materno
END

El Like te permite buscar por subcadenas entonces si tienes el nombre y los dos apellidos puedes utilizar esto, digitando en el edit parte del apellido a buscar se filtraran estos, luego es cosa solo de mostrarlos, recuerda que tienes asociado al DBGrid una consulta.

Saludos

Alejandro
Valparaiso - CHILE


La franja horaria es GMT +2. Ahora son las 22:48:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi