PDA

Ver la Versión Completa : ¿Como hacer filtro en ADOTable acces?


nmenna10
02-07-2012, 21:47:40
Hola amogos Delphianos, Queria consultarles haber si alguno me puede dar una manito con un problema que tengo con los filtros.
El problema en se es que cuando hago el filtro en el campo de la tabla "Cliente" y pongo solo "Ramirez" me lo filtra, pero cuando pongo por ejemplo: "Ramirez Juan" me da error, me dice "El filtro no se puede abrir".


Aca les dejo mi codigo del filtro para ver si alguno me puede ayudar a ver donde estoy equibocandome:


procedure TForm_Registro_rma.SpeedButton1Click(Sender: TObject);
Var
Filtro:string;
begin

DBGrid1.Visible:=true;
Filtro:='';

if RMA.Text <> '' then
Filtro:= '(RMA like %' + RMA.Text + '%)';

if Cliente.Text <> '' then
begin
if filtro <> '' then filtro:= filtro + ' and ';
Filtro:= Filtro + '(Cliente Like %' + Cliente.Text + '%)';
end;

DataModule1.Table_RMA.Filter:= Filtro;
DataModule1.Table_RMA.Filtered:= True;
end;




Muchas graciasss.

darkbits
02-07-2012, 21:56:52
Esto a mi me funciona en MySQL Interbase etc.


var Filtro : String;
begin
If (RMA.Tex <> '' or cliente.Tex <> '' ) then
begin
DataModule1.Table_RMA.Filtered := False;
DataModule1.Table_RMA.Filter := 'RMA Like ''%'+ rma.Text + '%'''+' or '+'cliente Like ''%'+ Cliente.Text + '%''' ;
DataModule1.Table_RMA.Filtered := True
end
else
DataModule1.Table_RMA.Filtered := False;

Neftali [Germán.Estévez]
03-07-2012, 12:12:36
No estoy seguro, pero prueba con * en lugar de %.

ElDioni
03-07-2012, 13:13:28
Hola,

los % tienen que ir dentro de las comillas del texto que quieres comparar.


Filtro:= '(RMA like ' + quotedstr('%'+RMA.Text + '%') + ')';


Saludos