Evento Form.ApplyFilter (Access)

Se produce cuando se aplica un filtro a un formulario.

Sintaxis

más sencilla.ApplyFilter (Cancel, ApplyType)

expresión Variable que representa un objeto Form.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Cancel Obligatorio Número entero La opción determina si se produce el evento ApplyFilter. El establecimiento del argumento Cancel en True cancela el evento ApplyFilter y no se aplica el filtro al formulario.
ApplyType Obligatorio Número entero Devuelve el tipo de filtro que se aplicó.

Comentarios

Para ejecutar una macro o procedimiento de evento cuando se produzca este evento, establezca la propiedad OnApplyFilter en el nombre de la macro o en [Procedimiento de evento].

Use el evento ApplyFilter para:

  • Asegúrese de que el filtro que se está aplicando es correcto. Por ejemplo, puede que quieras asegurarte de que cualquier filtro aplicado a un formulario Pedidos incluya criterios que restrinjan el campo FechaPedido . Para ello, compruebe el valor de la propiedad Filter o ServerFilter del formulario para asegurarse de que este criterio se incluye en la expresión de la cláusula WHERE.

  • Cambiar la presentación del formulario antes de que sea aplicado el filtro. Por ejemplo, cuando se aplica un filtro determinado, quizás desee deshabilitar u ocultar ciertos campos que no son apropiados para los registros que muestra el filtro.

  • Deshacer o cambiar las acciones que realizó cuando se produjo el evento Filter . Por ejemplo, puede deshabilitar u ocultar algunos controles en el formulario cuando el usuario está creando el filtro porque no desea que estos controles se incluyan en los criterios de filtro. Luego se pueden habilitar o mostrar estos controles después de ser aplicado el filtro.

Las acciones que se llevan a cabo en la macro o el procedimiento de evento ApplyFilter se producen antes de aplicar o quitar el filtro, o después de cerrar las ventanas Filtro avanzado/ordenar, Filtrar por formulario o Filtro de servidor por formulario, pero antes de que se vuelva a mostrar el formulario. Los criterios que ha especificado en el filtro recién creado están disponibles para el procedimiento de evento o macro ApplyFilter como la configuración de la propiedad Filter o ServerFilter .

Nota:

El evento ApplyFilter no se produce cuando el usuario realiza una de las acciones siguientes:

  • Aplica o quita un filtro usando las acciones ApplyFilter, OpenReport o ShowAllRecords en una macro, o sus métodos correspondientes del objeto DoCmd en Visual Basic.
  • Usa la acción Close o el método Close del objeto DoCmd para cerrar las ventanas Filtro avanzado/ordenar, Filtrar por formulario o Filtrar por servidor por formulario.
  • Establece la propiedad Filter o ServerFilter o la propiedad FilterOn o ServerFilterByForm en una macro o Visual Basic (aunque puede establecer estas propiedades en un procedimiento de evento o una macro ApplyFilter ).

Ejemplo

En el ejemplo siguiente se muestra cómo ocultar los controles AmountDue, Tax y TotalDue en un formulario de pedidos cuando el filtro aplicado restringe los registros a solo los pedidos que se han pagado.

Para probar este ejemplo, agregue el siguiente procedimiento de evento a un formulario de pedidos que contenga los controles AmountDue, Tax y TotalDue. Ejecute un filtro que liste sólo los pedidos pagados.

Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer) 
 If Not IsNull(Me.Filter) And (InStr(Me.Filter, "Orders.Paid = -1")>0 _ 
 Or InStr(Me.Filter, "Orders.Paid = True")>0)Then 
 If ApplyType = acApplyFilter Then 
 Forms!Orders!AmountDue.Visible = False 
 Forms!Orders!Tax.Visible = False 
 Forms!Orders!TotalDue.Visible = False 
 ElseIf ApplyType = acShowAllRecords Then 
 Forms!Orders!AmountDue.Visible = True 
 Forms!Orders!Tax.Visible = True 
 Forms!Orders!TotalDue.Visible = True 
 End If 
 End If 
End Sub

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.