Filtrar tablas

Mi problema es que quiero filtrar una tabla hecha en access por varios valores estoy utilizando la siguiente instrucción la cual funciona correctamente para un solo campo de la tabla:
dmdSeguridad.aqUsuarios.Filter:= 'nUsuario='''+edtTexto.Text+'''';
Ahora como le haría para que en esta misma instrucción me filtre la tabla por otros valores y campos a la vez. Un ejemplo

5 Respuestas

Respuesta
1
Uniendo los campos que se filtran con las palabras and y or, por ejemplo:
dmdSeguridad.aqUsuarios.Filter := 'nUsuario='+edtTexto.Text+ ' and cContrasenia=' + QuotedStr(edtContras.Text) + ' or nOtroCampo=' + edtOtroCampo.Text;
Y así sucesivamente. Podes usar paréntesis como en una expresión normal. De lo único que tenés que tener cuidado es que la expresión de filtro sea una cadena de caracteres (string) válida (en todo caso, fíjate cómo te queda con el debugger).
La función QuotedStr te sirve para obtener un string con los apostrofes correctos.
Acordate, además, que una vez modificado el filtro, tenés que poner en True la propiedad Filtered de la tabla. Lo que tenés que hacer, por precaución, es:
Tabla.Filtered := False;
Tabla.Filter := (acá va el filtro...);
Tabla.Filtered := True;
Respuesta
1
Seria:
dmdSeguridad.aqUsuarios.Filter:= '(nUsuario='''+edtTexto.Text+''') AND (nContrasena=''' + edtContrasena.Text + '')';
Germán.
Respuesta
1
Si estas trabajando con controles enlazados a datos debes saber que la propiedad Filter del conjunto de datos puede contener sentencias más complejas. Ahora estas haciendo, por ejemplo, "nUsuario='ruben'", pero podrias tambien hacer "nUsuario='ruben' and nEdad=25". ¿Entiendes el concepto? De esta forma, mediante la clausua "and" y "or" puedes ejecutar filtros más complejos.
Respuesta
1
Para poder incluir varios clausulas en un filtro utiliza 'and':
tabla.filter:='usuario=1 and codigo=33';
Respuesta
1
Anexa el conector lógico "AND"
Ejemplo:
nUsuario='pepe' and dia='03'
todo esto en un string
Ok..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas