Compartir a través de


Aplicar un filtro al abrir un formulario o informe

Al usar el código de Visual Basic para aplicaciones (VBA) para abrir un formulario o informe, quizás quiera especificar los registros que desea mostrar. Puede especificar los registros para mostrar en el formulario o informe de varias maneras. Un método común es mostrar un cuadro de diálogo personalizado donde el usuario escribe los criterios de la consulta subyacente del formulario o informe. Para obtener los criterios, diríjase a los controles del cuadro de diálogo. Las siguientes secciones describen tres formas en que puede usar los criterios que especificó en el cuadro de diálogo personalizado para filtrar los registros.

Con el argumento wherecondition

El argumento wherecondition del método o acción OpenForm o OpenReport es la manera más sencilla de obtener criterios en situaciones en las que un usuario proporciona solo un valor. Por ejemplo, podría mostrar un formulario que pida a los usuarios seleccionar un Id. de pedido de la factura que desean imprimir. Si usa un procedimiento de evento, puede aplicar un filtro que muestre un único registro agregando un argumento al método OpenReport, como se muestra en la siguiente línea de código:

DoCmd.OpenReport "Invoice", acViewPreview, , "OrderID = " & OrderID 

en "OrderID = " la expresión de filtro hace referencia al campo OrderID de la consulta subyacente del informe de factura. El IdDePedido al lado derecho de la expresión hace referencia al valor seleccionado por el usuario de la lista de IdDePedido en el cuadro de diálogo. La expresión concatena los dos, haciendo que el informe incluya únicamente la factura para el registro que seleccionó el usuario.

El argumento wherecondition es aplicado solamente por el procedimiento de evento especificado para el evento OnClick del botón que ejecuta el método OpenForm u OpenReport. Esto le da la flexibilidad de usar cualquier número de cuadros de diálogo diferentes para abrir el mismo formulario o informe y aplicar diferentes conjuntos de criterios según lo que el usuario desee hacer. Por ejemplo, es posible que el usuario desee imprimir una factura para un determinado cliente o ver pedidos solo para un producto concreto.

Use el argumento wherecondition para establecer criterios para más de un campo, pero si lo hace, la configuración del argumento se vuelve rápidamente larga y complicada. En estos casos, puede resultar más fácil especificar criterios en una consulta.

Uso de una consulta como filtro

Las consultas separadas, denominadas consultas de filtro, pueden hacer referencia a los controles del cuadro de diálogo para obtener sus criterios. Con este enfoque, filtra los registros en un formulario o informe al establecer el argumento filtername del método o la acción OpenForm u OpenReport para el nombre de la consulta de filtro que crea. La consulta de filtro debe incluir todas las tablas en el origen del registro del formulario o informe que está abriendo. Además, la consulta de filtro debe incluir todos los campos en el formulario o informe que está abriendo; como alternativa, usted debe configurar su propiedad OutputAllFields con el valor.

Después de crear y guardar la consulta para usar como filtro, establezca el argumento filtername del método o la acción OpenReport para el nombre de la consulta de filtro. El argumento filtername aplica la consulta de filtro especificada cada vez que se ejecuta el método OpenReport.

El uso de una consulta como filtro para establecer los criterios tiene ventajas similares al uso del argumento wherecondition del método OpenForm u OpenReport. Una consulta de filtro le proporciona la flexibilidad de utilizar varios cuadros de diálogo diferentes para abrir el mismo formulario o informe y aplicar diferentes conjuntos de criterios según lo que el usuario desee realizar.

Referencia directa a los controles de cuadros de diálogo en la consulta subyacente de un formulario o informe

También puede hacer referencia a los controles de cuadro de diálogo directamente en la consulta subyacente de un formulario o informe en lugar de a través de los argumentos del método OpenForm o OpenReport. Con este método, el método o la acción OpenForm o OpenReport no requiere el argumento wherecondition o filtername. En su lugar, cada vez que abra un formulario o informe, la consulta subyacente busca el cuadro de diálogo obtener sus criterios. No obstante, si un usuario abre el formulario o informe en la ventana de base de datos en lugar de con el cuadro de diálogo, Access muestra un cuadro de parámetros que solicita al usuario el valor del cuadro de diálogo.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.