Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.