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.