PDA

Ver la Versión Completa : Filtrar una tabla paradox


lbidi
03-11-2003, 15:26:41
Hola.
Tengo una pequeña agenda hecha con bde y tabla pdx.
La muestro con un grid sin problemas. Ahora necesito
poder filtrarla pej. x nombre, y/o direccion, y/o telefono, etc, etc.
Que me conviene utilizar , filtros o un query? He intentado hacer un query pero no supe redibujar la grid con los datos obtenidos del query, me explico?

Gracias y disculpen mi ignorancia. :(
Leonardo
lbidi@dsa.com.uy

marcoszorrilla
03-11-2003, 16:43:38
Si usas un Query, tendrás que unir la rejilla a través de un TDataSource que apuntará al Query, no a la Tabla.

Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * from Agenda');
Query1.Sql.Add('Where nombre = ');
Query1.Sql.Add(QuotedStr(Edit1.Text);
Query1.Open;

Como cierras y vuelves a construir la Query te mostrará los datos actuales.

Pones un botón que diga por ejemplo; activar consulta.

También puede hacerse con un filtro.

MiTabla.Filter:='Nombre =' +QuotedStr(Edit1.Text);
MiTabla.Filtered:=True;

Un Saludo.

lbidi
04-11-2003, 16:16:07
Gracias por responder, intentare tu solucion.

Salu2.

jovehe
21-09-2004, 21:38:45
perdon una pregunta acerca de este hilo

y si el campo por el que queremos filtrar es un campoo de fecha como podria ser? suponiendo que la fecha se ponga desde un datetimepicker o desde un edit no importa.

espero poder obtener una respuesta y gracias por su ayuda
saludos¡¡

marcoszorrilla
21-09-2004, 21:48:10
Para utilizar un filtro con un DateTimePicker este puede ser un ejemplo:

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.Filter:='Fecha = '+QuotedStr(FormatDateTime('dd/mm/yyyy',DateTimePicker1.date));
Table1.Filtered:=True;
end;


Con SQL

Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * from Agenda');
Query1.Sql.Add('Where nombre = ');
Query1.Sql.Add(QuotedStr(FormatDateTime('mm/dd/yyyy',DateTimePicker1.date)));
Query1.Open;


Fíjate que con SQL la fecha hay que presentarla mm/dd...

Un Saludo

jovehe
22-09-2004, 19:24:07
Que tal

Muchas Gracias por tu pronta respuesta ya probe lo que me contestaste y si funciono te agradezco tu tiempo y hasta pronto.

Saludos¡¡