FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Filtrar Datos DBGRID
Por favor alguien me podria ayudar tengo Form con un Dbgrid , Boton1 y tedit
DBGRID: jala datos de un tabla Usuarios con campos (Codigo,Nombre,Direccion,Estado, Foto) 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. Ejm atos del Campo Nombre Juan Jimenes Gimenes Mendoza En el tedit Ingreso: me y se filtre solo Jimenes,Gimenes y Mendoza, me posiciono en un de ellos (en el DBGRID) y doy doble click y abre el form de ingreso para poderlo editar. Gracias por su ayuda de antemano, espero que me haya expresado bien Saludos Carlos |
#2
|
|||
|
|||
busca la propiedad Filter del Dataset que estes utilizando, ya sea BDE, ADO, etc
|
#3
|
||||
|
||||
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:
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:
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. |
#4
|
|||
|
|||
Cita:
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 |
#5
|
||||
|
||||
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. |
#6
|
|||
|
|||
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 |
#7
|
||||
|
||||
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:
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 |
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
Hola Lepe, en realidad el razonamiento biene de lo que necesira nuestro amigo:
Cita:
Saludos Maestro |
#10
|
||||
|
||||
Un filtro se ejecuta del lado cliente, por tanto, si está en red, viajará todos los registros de la tabla y despues se hará la restricción del filtro. Si no está en red, se seleccionan todos los registros y despues se hace el filtro... es un desperdicio de recursos y tiempo (desde mi punto de vista).
Al menos en paradox, no se permiten filtros con comodines del tipo "%fer%", (tú utilizas el asterisco... será que usas Access ) sino que habría que crear un filtro tal que así: que no es lo que pide, y además es más costoso para el programador. Por otra parte, no puedes compartir ese TTable con otras ventanas, porque siempre mostraría los datos filtrados, y tarde o temprano necesitará un filtrado distinto para cada ventana. Una consulta es totalmente independiente de la tabla, incluso la tabla puede estar cerrada y la consulta funciona perfectamente. Una Consulta puedes ordenarla ascendente y descendentemente, por el campo "filtrado" o por otro cualquiera, usando los índices que se hayan creado para ese propósito en la BBDD. El filtro creo recordar, no usa los índices. La consulta puedes dejarla preparada para tener un acceso más rápido de ejecución, esto solo funciona con parámetros: A partir de ahora solo hay que hacer:
Amén de poder usar inner joins en lugar de campos Lookup y restringir los datos con mucha más comodidad. Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
|||
|
|||
donde tengo q poner ese codigo?
|
#12
|
||||
|
||||
Hola Matiasx13, bienvenido a Club Delphi
La ubicación del código dependerá de la funcionalidad de tu aplicación, tendrías que dar mas datos. Por favor lee nuestra guía de estilo. Saludos y gracias por tu colaboración
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#13
|
|||
|
|||
hola, muchas gracias por contestar
tengo un data module con 1 adoconnection, un adoquery(en el SQL :select * from tabla), 1 datasourse y esta todo bien conectado y el dbgrid al datasourse lo q quiero es buscar en la tabla por el campo ''codigo'', pero uso el codigo este: y lo pongo en onchange del edit
muchas gracias desde ya!!! |
#14
|
||||
|
||||
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración
Recuerda poner los tags al código fuente, ejemplo: Gracias
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
||||
|
||||
Lee la guía de estilo, gracias
Cita:
Y procura escribir correctamente, gracias Lee la guía de estilo, gracias
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#16
|
|||
|
|||
disculpa, no tengo la menor idea de lo q tengo q hacer(de la imagen q subiste)?, ni donde?.
queria pegar la imagen q me subiste pero no tengo permitido todavia subir imagen, eso me dijo. ley algo de la guia de estilo, pero nunca pregunte nada, ya vi todos los temas relacionado y no vi mi solucion, y decidi preguntar |
#17
|
||||
|
||||
Pues pon el código que usas, recuerda que no tenemos una bola de cristal
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#18
|
|||
|
|||
hola, tenes razon, nose como hacerme entender!
voy de nuevo, te comento lo q hice: data moldule (adoconnetion(conecto la tabla, pruebo coneccion :satifactoria), adoquery1((SLQTStrings), pongo: select * from mi tabla. Conecction: adoconnecton. Active: True )), datasourse1(dataset: adoquery). Un form1: dbgrid(datasourseataModule.datasourse1) y un edit. Y de ahi alta, baja y modificacion Lo q quiero es buscar en el dbgrid por el campo ''codigo''. mi tabla se llama: Articulos los campos son: Codigo Articulos Cantidad Precio Precio de venta Telle Tipo fecha hora espero q me entiendas, de ahi nose mas, solo busco ejemplos q me vayan guiando |
#19
|
||||
|
||||
¿Buscar en el dbgrid? Supongo que quieres buscar en la base de datos (el dbgrid es solo un visor de lo que tiene el dataset asociado al mismo, mediante su datasource)
Pues mira este hilo desde el principio, se explica con ejemplos, particularmente en el mensaje #7
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
|||
|
|||
muchas gracias me fije lo q me dijiste y me di cuenta q donde yo ponia la tabla tenia q poner *
muchas gracias por tu tiempo!! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Filtrar tabla para dbgrid | nachito_tuc | Conexión con bases de datos | 5 | 07-09-2006 20:55:18 |
como filtrar en un dbgrid por una palabra a buscar | mrmago | Conexión con bases de datos | 10 | 30-12-2005 20:52:25 |
Filtrar por un campo de un dbgrid | Ivan_25 | C++ Builder | 11 | 03-11-2005 12:29:44 |
Filtrar un DBGrid | jdangosto | OOP | 4 | 22-02-2005 21:15:08 |
filtrar en un dbgrid | click | Varios | 2 | 06-07-2004 20:28:23 |
|