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

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.