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 06-03-2004
phantom__2k phantom__2k is offline
Registrado
 
Registrado: feb 2004
Posts: 1
Poder: 0
phantom__2k Va por buen camino
Smile Filtrar tabla al estilo AYUDA

Deseo filtrar una tabla al estilo ayuda de Windows en donde al ir escribiendo cada letra se va filtrando dependiendo del caracter introducido, por ejemplo si en un Edit escribo la letra A se filtrara por ejemplo lo siguiente:
Abel
Armando
Angel
Angeluz

pero si despues de "A" escribo la n (osea que en Edit quede "An") quedará como sigue:
Angel
Angeluz

Y luego que pueda navegar entre la lista filtrada y al presionar Enter me muestre el registro correspondiente.
Responder Con Cita
  #2  
Antiguo 06-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Podes valerte de un TEdit, y en su evento OnChange cambiar el valor del "Filtro". Para filtrar... dependerá de los componentes de acceso a datos que uses, aunque lo mas óptimo resulta ser utilizar un Query e ir actualizando el valor introducido por el usuario en el where de la consulta.

Luego, para navegar... valete de un TDBGrid, y su evento OnKeyPress para determinar el momento en que el usuario presiona enter (ascii #13).

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 06-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Sólo decir que, dependiendo de la tabla que uses, el número de registros, si atacas en local o en remoto, si hay o no índices definidos por los campos de búsqueda,...... este tipo de consultas puede irte bastante lento

Personalmente no soy partidario de ellos, pero cada cual.....
Responder Con Cita
  #4  
Antiguo 03-05-2004
Avatar de Rox77
Rox77 Rox77 is offline
Miembro
 
Registrado: may 2003
Ubicación: Caceres
Posts: 44
Poder: 0
Rox77 Va por buen camino
Talking

Creo q lo q buscas Phantom 2k es algo asi
en un edit cuando pulses intro (usa el evento OnKeyPress o el q quieras) q ejecute la siguiente consulta


var
s:string;
begin
s:='=>"'+Edit1.text+'"';

Q.close;
Q.SQL.clear;
Q.SQL.add('SELECT * FROM TABLA WHERE NOMBRE '+s);
Q.SQL.open;

PARA BUSQUEDAS DE "CONTENIDO EN" puedes usar esta otra opcion..

var
s:string;
begin
s:='"%'+Edit1.text+'%"';

Q.close;
Q.SQL.clear;
Q.SQL.add('SELECT * FROM TABLA WHERE NOMBRE LIKE '+s);
Q.SQL.open;

lo unico q tienes q hacer es poner el contenido del edit entre % y entre Comillas dobles que es lo que accepta Access en mi caso.

te deberia funcionar. De lo q te dice Cadetill ya no me hago responsable...jeej...a mi de momento me funciona pero no tengo muchos registros.Saludos.

Última edición por Rox77 fecha: 03-05-2004 a las 17:03:21.
Responder Con Cita
  #5  
Antiguo 03-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Rox77
De lo q te dice Cadetill ya no me hago responsable...jeej...a mi de momento me funciona pero no tengo muchos registros
Pero lo que dice cadetill será cierto (lo de ir lento) en casos como los que él menciona. Un filtro así puede hacerse si el acceso es en tablas de escritorio o bien si se usan ClientDataSets. Pero como lo pones tú, siempre será lento ya que estás ejecutando la consulta SQL por cada tecla que se oprima.

// Saludos
Responder Con Cita
  #6  
Antiguo 03-05-2004
Avatar de Rox77
Rox77 Rox77 is offline
Miembro
 
Registrado: may 2003
Ubicación: Caceres
Posts: 44
Poder: 0
Rox77 Va por buen camino
Ya habia dicho q no tengo muchos registros pero aun asi...puede poner un boton para activar el filtro o desactivarlo no con cada evento OnKeyPress...o solo cuando pulse intro ¿ NO ?
Ademas si va a tener q filtrar de una tabla de 200.000 registros pues hombre algo tardara no?...y si no pues nada ale a dar soluciones.
Saludos.
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


La franja horaria es GMT +2. Ahora son las 14:05:28.


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