Evento Form.ApplyFilter (Access)
Ocorrerá quando um filtro for aplicado a um formulário.
Sintaxe
expressão. ApplyFilter (Cancelar, ApplyType)
expressão Uma variável que representa um objeto Form.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Cancel | Obrigatório | Inteiro | A configuração determina se o evento ApplyFilter ocorre. A configuração do argumento Cancel como True cancelará o evento ApplyFilter e o filtro não será aplicado ao formulário. |
ApplyType | Obrigatório | Número inteiro | Retorna o tipo de filtro que foi aplicado. |
Comentários
Para executar uma macro ou um procedimento de evento quando ele ocorrer, defina a propriedade OnApplyFilter como o nome da macro ou como [Procedimento do Evento].
Use o evento ApplyFilter para:
Verifique se o filtro que está sendo aplicado está correto. Por exemplo, talvez você queira ter certeza de que qualquer filtro aplicado a um formulário Orders inclui critérios que restringem o campo OrderDate . Para fazer isso, verifique o valor da propriedade Filter ou ServerFilter do formulário para verificar se esses critérios estão incluídos na expressão da cláusula WHERE.
Alterar a exibição do formulário antes de aplicar o filtro. Por exemplo, quando você aplicar um determinado filtro, pode querer desativar ou ocultar alguns campos que não sejam apropriados para os registros exibidos por esse filtro.
Desfazer ou alterar as ações que você tomou quando o evento Filter ocorreu. Por exemplo, você pode desabilitar ou ocultar alguns controles no formulário quando o usuário estiver criando o filtro porque não deseja que esses controles sejam incluídos nos critérios de filtro. Depois, ative ou exiba esses controles depois que o filtro for aplicado.
As ações no procedimento ou macro do evento ApplyFilter ocorrem antes que o filtro seja aplicado ou removido, ou depois que a janela Filtro/Classificação Avançada, Filtro por Formulário ou Filtro de Servidor por Formulário for fechada, mas antes que o formulário seja redisplay. Os critérios inseridos no filtro recém-criado estão disponíveis para o procedimento de evento ApplyFilter ou macro como a configuração da propriedade Filter ou ServerFilter .
Observação
O evento ApplyFilter não ocorrerá quando o usuário seguir um destes procedimentos:
- Aplica ou remove um filtro usando as ações ApplyFilter, OpenReport ou ShowAllRecords em uma macro ou seus métodos correspondentes do objeto DoCmd no Visual Basic.
- Usa a ação Fechar ou o método Fechar do objeto DoCmd para fechar a janela Filtro/Classificação Avançada, Filtro por Formulário ou Filtro de Servidor por Formulário.
- Define a propriedade Filter ou ServerFilter ou FilterOn ou ServerFilterByForm em uma macro ou Visual Basic (embora você possa definir essas propriedades em um procedimento ou macro de evento ApplyFilter ).
Exemplo
O exemplo a seguir mostra como ocultar os controles AmountDue, Tax e TotalDue em um formulário Orders quando o filtro aplicado restringe os registros apenas aos pedidos que foram pagos.
Para experimentar este exemplo, adicione o procedimento de evento a seguir a um formulário Orders que contém controles AmountDue, Tax e TotalDue. Execute um filtro que liste somente os pedidos já pagos.
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.