Compartilhar via


Método DoCmd.ApplyFilter (Access)

O método ApplyFilter executa a ação AplicarFiltro no Visual Basic.

Sintaxe

expressão. ApplyFilter (FilterName, WhereCondition, ControlName)

expression Uma variável que representa um objeto DoCmd.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
FilterName Opcional Variant Uma expressão de cadeia de caracteres que é o nome válido de um filtro ou de uma consulta no banco de dados atual. Ao utilizar este método para aplicar um filtro de servidor, o argumento FilterName tem de estar em branco.
WhereCondition Opcional Variant Uma expressão de cadeia de caracteres que é uma cláusula WHERE do SQL válida sem a palavra WHERE.
NomeDoControlo Opcional Variant

Comentários

Utilize a ação AplicarFiltro para aplicar um filtro, uma consulta ou uma cláusula WHERE do SQL a uma tabela, formulário ou relatório para restringir ou ordenar os registos na tabela ou nos registos da tabela ou consulta subjacente do formulário ou relatório. Para relatórios, é possível usar esta ação somente em uma macro especificada pela propriedade de evento AoAbrir do relatório.

Utilize esta ação para aplicar uma cláusula WHERE do SQL apenas ao aplicar um filtro de servidor. Um filtro de servidor não pode ser aplicado a uma fonte de registros do procedimento armazenado.

Observação

Utilize o argumento FilterName se já tiver definido um filtro que forneça os dados adequados. Utilize o argumento WhereCondition para introduzir diretamente os critérios de restrição. Se você usar ambos os argumentos, o Microsoft Access aplicará a cláusula WHERE aos resultados do filtro. É preciso usar um ou ambos os argumentos.

Você pode aplicar um filtro ou uma consulta a um formulário no modo de formulário ou no modo de folha de dados.

O filtro e a condição WHERE que aplicar tornam-se a definição da propriedade Filter do formulário ou da propriedade ServerFilter do relatório.

Quando guarda uma tabela ou formulário, o Access guarda qualquer filtro atualmente definido nesse objeto, mas não aplicará o filtro automaticamente da próxima vez que o objeto for aberto (embora aplique automaticamente qualquer ordenação que tenha aplicado ao objeto antes de ser guardado).

Para aplicar um filtro automaticamente quando um formulário é aberto pela primeira vez, especifique uma macro contendo a ação ApplyFilter ou um procedimento de evento contendo o método ApplyFilter do objeto DoCmd como a configuração da propriedade de evento OnOpen do formulário. Você também pode aplicar um filtro usando a ação OpenForm ou OpenReport ou os métodos correspondentes. Para aplicar um filtro automaticamente quando uma tabela é aberta pela primeira vez, abra a tabela usando uma macro contendo a ação OpenTable, seguida imediatamente da ação ApplyFilter.

É necessário incluir, pelo menos, um dos dois argumentos do método ApplyFilter. Quando você insere um valor em ambos os argumentos, o argumento WhereCondition é aplicado ao filtro.

O comprimento máximo do argumento WhereCondition é de 32.768 caracteres (ao contrário do argumento da ação Where Condition na janela Macro, cujo comprimento máximo é de 256 caracteres).

Exemplo

O exemplo seguinte utiliza o método ApplyFilter para apresentar apenas registos que contenham o nome "Rei" no campo Apelido .

DoCmd.ApplyFilter , "LastName = 'King'"

O exemplo seguinte mostra como utilizar a propriedade AplicarFiltro para filtrar os registos apresentados quando é escolhido um botão de alternar com o nome tglFilter .

Private Sub tglFilter_Click()
    With tglFilter
        If .Value = True Then
            .Caption = "P/T"
            .StatusBarText = "only full-timers"
            DoCmd.ApplyFilter , "[Hours]=40"
        ElseIf .Value = False Then
            .Caption = "All"
            .StatusBarText = "only part-timers"
            DoCmd.ApplyFilter , "[Hours]<40"
        Else
            .Caption = "F/T"
            .StatusBarText = "all employees"
            DoCmd.ShowAllRecords
            .SetFocus 'to activate the button's statusbar-text
        End If
    End With
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.