Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ocorre quando o utilizador abre uma janela de filtro ao selecionar Filtrar por Formulário, Filtro/Ordenação Avançada ou Filtro de Servidor Por Formulário.
Sintaxe
expressão. Filtro (Cancelar, FilterType)
expressão Uma variável que representa um objeto Form.
Parâmetros
| Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
|---|---|---|---|
| Cancel | Obrigatório | Integer | A configuração determina se deve abrir a janela de filtro. Definir o argumento Cancelar como Verdadeiro (1) impede a abertura da janela de filtro. Você também pode usar o método CancelEvent do objeto DoCmd para cancelar a abertura da janela de filtro. |
| FilterType | Obrigatório | Integer | A janela Filtro que o usuário está tentando abrir. O argumento FilterType pode ser uma das seguintes constantes intrínsecas:
|
Comentários
Para executar um macro ou procedimento de evento quando esse evento ocorrer, defina a propriedade OnFilter como o nome da macro ou como [procedimento do evento].
Utilize o evento Filtrar para:
Remova qualquer filtro anterior para o formulário. Para fazer isso, defina a propriedade Filter ou ServerFilter do formulário como uma cadeia de caracteres de comprimento zero ("") em que o filtro de macro ou procedimento de evento. Isto é especialmente útil se quiser certificar-se de que os critérios estranhos não aparecem no novo filtro. Por exemplo, quando utiliza a funcionalidade Filtrar Por Seleção , os critérios que utiliza (o texto selecionado no formulário) são adicionados à expressão da cláusula WHERE Filter ou ServerFilter e são apresentados na janela Filtrar Por Formulário e na janela Filtro/Ordenação Avançada ou na janela Filtrar Por Formulário do Servidor . Você pode remover esses critérios antigos usando o evento Filter.
Insira as configurações padrão para o novo filtro. Para fazer isso, defina a propriedade Filter ou ServerFilter para incluir esses critérios. Por exemplo, poderá querer que todos os filtros de um formulário Produtos apresentem apenas produtos atuais (produtos para os quais o controlo Descontinuado no formulário Produtos não está selecionado).
Use seu próprio janela Filtro personalizado em vez de uma das janelas de filtro do Microsoft Access. Quando o evento Filter ocorre, você pode abrir o seu próprio formulário personalizado e utilizar as entradas nesse formulário para definir a propriedade Filter ou ServerFilter e filtrar o formulário original. Quando o utilizador fechar este formulário personalizado, defina a propriedade FilterOn ou ServerFilterByForm do formulário original como Verdadeiro (1) para aplicar o filtro. Cancelar o evento Filtrar impede a abertura da janela filtro do Access.
Impedir que certos controles no formulário apareçam ou sejam utilizados na janela Filtrar por formulário ou Filtro do servidor por formulário. Se ocultar ou desativar um controlo no procedimento de evento ou macro Filtrar , o controlo está oculto ou desativado na janela Filtrar Por Formulário ou Filtro de Servidor por Formulário e não pode ser utilizado para definir critérios de filtro. Em seguida, você pode usar o evento ApplyFilter para exibir ou ativar esse controle depois que o filtro será aplicado ou quando o filtro é removido do formulário.
Exemplo
O exemplo seguinte mostra como desativar o controlo TotalDue num formulário Encomendas quando o utilizador tenta criar um filtro, para que o utilizador não possa filtrar neste campo. Todos os registos que tenham um valor TotalDue e cumpram os outros critérios de filtro serão sempre apresentados no formulário filtrado. Este exemplo também força o usuário a usar a janela Filtrar por Formulário no lugar de Filtrar/Classificar Avançado.
Para experimentar este exemplo, adicione o seguinte procedimento de evento a um formulário Encomendas que contém um controlo TotalDue . Tente criar um filtro com a janela Filtro/Ordenação Avançada que utiliza o controlo TotalDue . Tente também criar o mesmo filtro usando a janela Filtrar por Formulário.
Private Sub Form_Filter(Cancel As Integer, FilterType As Integer)
If FilterType = acFilterByForm Then
Forms!Orders!TotalDue.Enabled = False
ElseIf FilterType = acFilterAdvanced Then
MsgBox "The best way to filter this form is to use the " _
& "Filter By Form command or toolbar button.", vbOKOnly + vbInformation
Cancel = True
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.