Share via


Evento Form.ApplyFilter (Access)

Se produce cuando se aplica un filtro a un formulario.

Sintaxis

expresión. 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 sea correcto. Por ejemplo, es posible que desee asegurarse de que cualquier filtro aplicado a un formulario Pedidos incluya criterios que restrinjan el campo OrderDate . Para ello, compruebe el valor de la propiedad Filter o ServerFilter del formulario para asegurarse de que estos criterios se incluyen 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 crea el filtro porque no quiere 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 del procedimiento de evento ApplyFilter o la macro se producen antes de que se aplique o quite el filtro, o después de que se cierre la ventana Filtro/ordenación avanzada, Filtrar por formulario o Filtro de servidor por formulario, pero antes de que se vuelva a mostrar el formulario. Los criterios especificados en el filtro recién creado están disponibles para el procedimiento de evento ApplyFilter o la macro como el valor 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 mediante las acciones ApplyFilter, OpenReport o ShowAllRecords en una macro, o sus métodos correspondientes del objeto DoCmd en Visual Basic.
  • Usa la acción Cerrar o el método Close del objeto DoCmd para cerrar la ventana Filtro o ordenación avanzados, Filtrar por formulario o Filtro por formulario del servidor.
  • 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 ApplyFilter o una macro).

Ejemplo:

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

Para probar este ejemplo, agregue el siguiente procedimiento de evento a un formulario Orders 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.