Ver Mensaje Individual
  #1  
Antiguo 16-06-2007
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Reputación: 19
Deiv Va por buen camino
Arrow ADO, SQL y Filtros

Hola,
Estoy empezando a trabajar con ADO, Tengo una Tabla de Access "Elementos.mdb" con 3 campos: "ID", "Nombre" y "Tipo", un ADOQuery1, un DataSource1 y un DBGrid1; mi problema que no entiendo es en esta parte cuando trato de Filtrar por el Campo "Tipo" con el siguiente código:
Código Delphi [-]
procedure TForm1.Button4Click(Sender: TObject);
begin
  ADOQuery1.Active:= False;
  if (ADOQuery1.Filter = '') then
    begin
      ADOQuery1.Filter:= 'Tipo = "Metal"';
      ADOQuery1.Filtered:= True;
      Button4.Font.Style:= Button4.Font.Style + [fsBold];
    end
  else
    begin
      ADOQuery1.Filter:= '';
      ADOQuery1.Filtered:= False;
      Button4.Font.Style:= Button4.Font.Style - [fsBold];
    end;
  ADOQuery1.Active:= True;
end;

Este código no me muestra nada, NO FILTRA, es decir solo me muestra un DBGRID VACÍO. En la Línea:
ADOQuery1.Filter:= 'Tipo = "Metal"';

he intentado cambiar las comillas a:
ADOQuery1.Filter:= 'Tipo = Metal';

Pero me lanza error en la última línea:

"Project: Proyecto.exe raised exception class EOleException with message 'Argumentos Incorrectos, fuera del intérvalo permitido o en conflictos con otros'. Process Stopped"

La ConectionString está bien ya que la propiedad Active está en True y puedo ver mi Tabla en el DBGrid.

¿Cómo le hago para mostrar en el DBGrid los registros filtados por "Tipo" correspondientes a "Metal"?
Responder Con Cita