Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo más sencillo es que conectes el DBGrid a una consulta, en lugar de a la tabla.
Inicialmente puedes leer todos los datos con una consulta de este estilo:

Código SQL [-]
  Select * from Usuarios


Cuando el usuario coloca una cadena en el Edit y sale (captura el OnExit, por ejemplo) modifica la consulta. Si en el Edit hay algo, la consulta debe ser del estilo a:

Código Delphi [-]
  Query.SQL.Text := 'SELECT * from usuarios where nombre like ' + 
                            QuotedStr('%' + Edit.text + '%');

Si en el edit no hay nada, vuelves a colocar la consulta inicial.
Pruebalo y si tienes problemas ya dirás...
No comentas qué BD estás utilizando.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 19-10-2006
crc2005 crc2005 is offline
Registrado
 
Registrado: sep 2006
Posts: 6
Poder: 0
crc2005 Va por buen camino
Cita:
Empezado por Neftali
Lo más sencillo es que conectes el DBGrid a una consulta, en lugar de a la tabla.
Inicialmente puedes leer todos los datos con una consulta de este estilo:


Código SQL [-]
Select * from Usuarios






Cuando el usuario coloca una cadena en el Edit y sale (captura el OnExit, por ejemplo) modifica la consulta. Si en el Edit hay algo, la consulta debe ser del estilo a:


Código Delphi [-]
Query.SQL.Text := 'SELECT * from usuarios where nombre like ' +
QuotedStr('%' + Edit.text + '%');





Si en el edit no hay nada, vuelves a colocar la consulta inicial.
Pruebalo y si tienes problemas ya dirás...
No comentas qué BD estás utilizando.

Gracias
Pero tengo una duda donde pongo
Query.SQL.Text := 'SELECT * from usuarios where nombre like ' +


QuotedStr('%' + Edit.text + '%');
en el evento click del boton y no me filtra ya lo probe pero nada
La basede datos es Paradox
Gracias
Responder Con Cita
  #3  
Antiguo 20-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Te estaba dando la solución y no recordaba que ese ejemplo lo colgué hace tiempo en mi página Web.
Revisa en esta página el ejemplo que se llama "Generar una búsqueda (Like *) utilizando SQL". EStá con código fuente, así que puedes revisarlo y destriparlo a tu gusto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 20-10-2006
crc2005 crc2005 is offline
Registrado
 
Registrado: sep 2006
Posts: 6
Poder: 0
crc2005 Va por buen camino
Smile Filtrar datos DBGrid

Gracias ya baje el ejemplo, pero ayer pude con la yuda que me dieron
solo aumente el cerrar y luego abrir la consulta
Query.SQL.close;
Query.SQL.Text := 'SELECT * from usuarios where nombre like ' +
QuotedStr('%' + Edit.text + '%');
Query.SQL.open;
Gracias a todos es un buen foro
Saludos
Responder Con Cita
  #5  
Antiguo 20-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola crc2005
Tienes una tabla Usuarios, Al ejecutar el from, el dbgrid muestra el contenido de esta tabla, seguro con Table1.Open;.
Bueno dices que:
Cita:
Lo que nesecito es que al ingresar un nombre en el tedit al darle click en el boton1 se filtre solo los que coincidan con este.
El boton a mi manera de ver no lo necesitas, veamos, tienes un edit1, en el evento OnChance de este pones:
Código Delphi [-]
If (Edit1.text <> '') then
    TUsuarios.Filter := 'Nombre Like '''+ Edit1.Text + '*''';
Esto es suponiendo que la tabla se llame TUsuarios, por supuesto que tienes que poner el nombre que tenga tu tabla.
Al ejecutar el programa lo que pongas en el edit1 se ira filtrando, si buscas el nombre Juan, con solo poner la ( J ) te mostrara todos los nombres que empiecen con J, Si pones (Ju) filtrara los que coincidan y asi sucesivamente.
Saludos
Responder Con Cita
  #6  
Antiguo 21-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Caral, ¿Por qué usar un filtro en lugar de una consulta?
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 23-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Lepe, en realidad el razonamiento biene de lo que necesira nuestro amigo:
Cita:
Lo que nesecito es que al ingresar un nombre en el tedit al darle click en el boton1 se filtre solo los que coincidan con este
En realidad tu duda es razonable, de todos modos se necesita hacer de una u otra manera la consulta, lo que pienso es que si tiene ya la tabla abierta por que no hacer simplemente un filtro, es simple y funciona.
Saludos Maestro
Responder Con Cita
  #8  
Antiguo 27-12-2017
LuisHatake LuisHatake is offline
Miembro
NULL
 
Registrado: oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola crc2005
Tienes una tabla Usuarios, Al ejecutar el from, el dbgrid muestra el contenido de esta tabla, seguro con Table1.Open;.
Bueno dices que:

El boton a mi manera de ver no lo necesitas, veamos, tienes un edit1, en el evento OnChance de este pones:
Código Delphi [-]
If (Edit1.text <> '') then
    TUsuarios.Filter := 'Nombre Like '''+ Edit1.Text + '*''';
Esto es suponiendo que la tabla se llame TUsuarios, por supuesto que tienes que poner el nombre que tenga tu tabla.
Al ejecutar el programa lo que pongas en el edit1 se ira filtrando, si buscas el nombre Juan, con solo poner la ( J ) te mostrara todos los nombres que empiecen con J, Si pones (Ju) filtrara los que coincidan y asi sucesivamente.
Saludos
Que hay de nuevo!! he realizado un ejemplo como el que has propuesto en este hilo, pero no funciona. yo tengo un ADOConection, ADOTable, DataSource y un DBGrid todos en enlazados correctamente pues he probado la conexion y funciona y me muestra los datos de una tabla de la base de datos. lo que me gustaria hacer es el filtro de los datos como la idea que propones, pero no me ha funcionado. al inciar el form no realizo ninguna accion en el codigo pues ya todo esta configurado para que muestre los datos. he puesto el código en el onchenge del edit y si entra a la condición pero presiento que falta actualizar algo con el dbgrid. espero sus respuestas.. saludos.
Responder Con Cita
  #9  
Antiguo 27-12-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por LuisHatake Ver Mensaje
Que hay de nuevo!! he realizado un ejemplo como el que has propuesto en este hilo, pero no funciona.
...
he puesto el código en el onchenge del edit y si entra a la condición pero presiento que falta actualizar algo con el dbgrid. espero sus respuestas.. saludos.
Intentalo haciendo:
Código Delphi [-]
...
  if Edit1.text <> '' then
  begin
    TUsuarios.Filtered := False;
    TUsuarios.Filter := 'Nombre Like '''+ Edit1.Text + '*''';
    TUsuarios.Filtered := True;
  end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Filtrar tabla para dbgrid nachito_tuc Conexión con bases de datos 5 07-09-2006 19:55:18
como filtrar en un dbgrid por una palabra a buscar mrmago Conexión con bases de datos 10 30-12-2005 19:52:25
Filtrar por un campo de un dbgrid Ivan_25 C++ Builder 11 03-11-2005 11:29:44
Filtrar un DBGrid jdangosto OOP 4 22-02-2005 20:15:08
filtrar en un dbgrid click Varios 2 06-07-2004 19:28:23


La franja horaria es GMT +2. Ahora son las 17:26:00.


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
Copyright 1996-2007 Club Delphi