Compartilhar via


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].

Utilize o evento ApplyFilter para:

  • Certifique-se de que o filtro que está a ser aplicado está correto. Por exemplo, pode querer ter a certeza de que qualquer filtro aplicado a um formulário Encomendas inclui critérios que restringem o campo DataDaEncomenda . Para tal, marcar o valor da propriedade Filtro ou ServerFilter do formulário para se certificar de que estes 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.

  • Anule ou altere as ações que efetuou quando ocorreu o evento Filtrar . Por exemplo, pode desativar ou ocultar alguns controlos no formulário quando o utilizador estiver a criar o filtro porque não quer que estes controlos 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 de o filtro ser aplicado ou removido, ou após a janela Filtro/Ordenação Avançada, Filtrar por Formulário ou Filtrar Por Formulário ser fechada, mas antes de o formulário ser reproduzido. Os critérios que introduziu no filtro recentemente criado estão disponíveis para o procedimento de evento Ou macro AplicarFiltro como a definição da propriedade Filtro ou FiltroDoServidor .

Observação

O evento ApplyFilter não ocorrerá quando o usuário seguir um destes procedimentos:

  • Aplica ou remove um filtro com as ações AplicarFiltro, OpenReport ou ShowAllRecords numa macro ou os métodos correspondentes do objeto DoCmd no Visual Basic.
  • Utiliza a ação Fechar ou o método Fechar do objeto DoCmd para fechar a janela Filtro/Ordenação Avançada, Filtrar Por Formulário ou Filtrar Por Formulário do Servidor.
  • Define a propriedade Filter ou ServerFilter ou a propriedade FilterOn ou ServerFilterByForm numa macro ou Visual Basic (embora possa definir estas propriedades numa macro ou procedimento de evento ApplyFilter ).

Exemplo

O exemplo seguinte mostra como ocultar os controlos AmountDue, Tax e TotalDue num formulário Encomendas quando o filtro aplicado restringe os registos apenas às encomendas que foram pagas.

Para experimentar este exemplo, adicione o seguinte procedimento de evento a um formulário Encomendas que contém controlos 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.