Filtrar un DBGrid
Buenas.
Estoy intentando filtar un DBGrid pasandole uno parámetros desde un edit. La idea es que cuando escribas un apellido y presiones el botón muestre en el dbgrid todos los registros que contengan ese apellido, pero no consigo hacerlo. El código que implemento es el siguiente: [delphi] procedure TForm1.Button1Click(Sender: TObject); begin dbgrid1.DataSource.DataSet.Filter := edit1.text; end; [/dephi] El error que me da es que no encuentra la columna que le paso como parámetro y no sé como especificar la columna en la que debe hacer la búsqueda. |
[delphi]
procedure TForm1.Button1Click(Sender: TObject); begin dbgrid1.DataSource.DataSet.Filter := 'Nombre campo = ' + edit1.text; end; [/dephi] Saludos |
Hola Lepe, gracias de nuevo.
He intentado la solución que me comentas y me sigue mostrando el mismo error, diciendo que no encuentra la columna. Al parecer está interpretando el nombre que se le pasa al edit como nombre de la columna. Por otro lado intenté este código para que cogiera cualquier texto añadido al buscado pero sigue sin funcionar, el caso es que compila sin error. Por otro lado, existe alguna forma de intentar hacerlo de tal forma que conforme se vaya escribiendo en el edit vaya mostrando el dbgrid los registros conforme se vayan adecuando a lo buscado. |
Una forma es a través de una consulta, en el OnKeyUp, por ejemplo, si la consulta está abierta, la cierras y acto seguido la abres con este where:
Si quieres más comodidad, ponle un parametro a la consulta, además si el sql es estático, se prepara más rapido para ser lanzada la consulta. SAludos |
Al final lo he solucionado con una consulta, pero no en el OnKyeUp, sino con un query a la tabla. Esté es el código:
Gracias de nuevo |
La franja horaria es GMT +2. Ahora son las 02:33:44. |
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