Ação de macro AplicarFiltro

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Você pode usar a ApplyFilter ação para aplicar um filtro, uma consulta ou uma cláusula SQL WHERE a uma tabela, formulário ou relatório. Essa ação restringe ou classifica os registros na tabela ou os registros da tabela ou consulta subjacente do formulário ou relatório. Para relatórios, você pode usar essa ação somente em uma macro especificada pela propriedade de OnOpen evento do relatório.

Observação

Você pode usar essa ação para aplicar uma cláusula SQL WHERE somente ao aplicar um filtro de servidor. Um filtro de servidor não pode ser aplicado à fonte de registro de um procedimento armazenado.

Observação

A ApplyFilter ação de macro não está disponível nos aplicativos Web do Access.

Configuração

A ApplyFilter ação tem os seguintes argumentos.

Argumento da ação Descrição
Nome do Filtro O nome de um filtro ou consulta que restringe ou classifica os registros da tabela, formulário ou relatório. Você pode inserir o nome de uma consulta existente ou de um filtro que tenha sido salvo como uma consulta na caixa Nome do Filtro na seção Argumentos da Ação do painel Construtor de Macros.
Observação: Quando você usa essa ação para aplicar um filtro de servidor, o argumento Nome do Filtro deve estar em branco.
Condição Where Uma cláusula SQL WHERE válida, sem a palavra WHERE, ou uma expressão que restringe os registros da tabela, formulário ou relatório.

Observação: Em uma expressão de argumento Condição Onde , o lado esquerdo geralmente contém um nome de campo da tabela ou consulta subjacente para o formulário ou relatório. O lado direito geralmente contém os critérios que você deseja aplicar a esse campo para restringir ou classificar os registros. Por exemplo, os critérios podem ser o nome de um controle em outro formulário que contém o valor ao qual você deseja que os registros do primeiro formulário correspondam. O nome do controle deve ser totalmente qualificado, por exemplo, Forms!formname!controlname.
Os nomes de campos devem ser colocados entre aspas duplas e os literais de cadeia de caracteres devem estar entre aspas simples.
O comprimento máximo do argumento Condição Onde é de 255 caracteres. Se você precisar inserir uma cláusula SQL WHERE mais longa, use o ApplyFilter método do DoCmd objeto em um módulo do Visual Basic for Applications (VBA). Você pode inserir instruções de cláusula SQL WHERE de até 32.768 caracteres no VBA.

Observação

Você poderá usar o argumento Nome do Filtro se já tiver definido um filtro que forneça os dados apropriados. Você pode usar o argumento Condição Onde para inserir os critérios de restrição diretamente. Se você usar os dois argumentos, o Access aplicará a WHERE cláusula aos resultados do filtro. Você deve usar um ou dois argumentos.

Comentários

Você pode aplicar um filtro ou uma consulta a um formulário no modo Formulário ou Folha de Dados.

O filtro e WHERE a condição que você aplica tornam-se a configuração do formulário, relatório Filter ou ServerFilter propriedade.

Para tabelas e formulários, essa ação é semelhante a selecionar Aplicar Filtro/Classificar ou Aplicar Filtro do Servidor no menu Registros . O comando de menu aplica o filtro criado mais recentemente à tabela ou formulário, enquanto a ApplyFilter ação aplica um filtro ou consulta especificado.

Em um banco de dados do Access, se você apontar para Filtrar no menu Registros e selecionar Filtrar/Classificar Avançado depois de executar a ApplyFilter ação, a janela Filtrar/Classificar Avançado mostrará os critérios de filtro selecionados com essa ação.

Para remover um filtro e exibir todos os registros de uma tabela ou formulário em um banco de dados do Access, você pode usar a ShowAllRecords ação ou o comando Remover Filtrar/Classificar no menu Registros . Para remover um filtro em um projeto do Access (.adp), retorne à janela Filtro de Servidor por Formulário e remova todos os critérios de filtro. Em seguida, selecione Aplicar Filtro de Servidor no menu Registros na barra de ferramentas ou defina a ServerFilterByForm propriedade como False (0).

Quando você salva uma tabela ou formulário, o Access salva qualquer filtro atualmente definido nesse objeto. No entanto, ele não aplicará o filtro automaticamente na próxima vez em que o objeto for aberto, embora aplique automaticamente qualquer tipo que você aplicou antes de o objeto ser salvo. Se desejar aplicar um filtro automaticamente quando um formulário for aberto pela primeira vez, especifique uma macro que contenha a ApplyFilter ação ou um procedimento de evento que contenha o ApplyFilter método do DoCmd objeto como a OnOpen configuração de propriedade de evento do formulário. Você também pode aplicar um filtro usando a ação ou OpenReport ou OpenForm seus métodos correspondentes. Para aplicar um filtro automaticamente quando uma tabela for aberta pela primeira vez, abra a tabela usando uma macro que contenha a OpenTable ação, seguida imediatamente pela ApplyFilter ação.

Exemplo

Aplicar um filtro usando uma macro

A macro a seguir contém um conjunto de ações. Cada ação filtra os registros de um formulário da Lista de Telefone do Cliente. Ele mostra como usar as ações , ApplyFilterShowAllRecordse GoToControl . Ele também mostra como usar condições para determinar qual botão de alternância em um grupo de opções foi selecionado no formulário. Cada linha de ação é associada a um botão de alternância que seleciona o conjunto de registros que começam com A, B, C e assim por diante, ou todos os registros. Anexe esta macro ao AfterUpdate evento do CompanyNameFilter grupo de opções.

Condição Ação Argumentos: Configuração Comentário
[CompanyNameFilters]=1 AplicarFiltrar where condition: [CompanyName] Like "[AÀÁÂÃÄ]*" Filtre por nomes de empresas que começam com A, À, Á, Â, Ã ou Ä.
[CompanyNameFilters]=2 AplicarFiltrar where condition: [CompanyName] like "b*" Filtre por nomes de empresas que começam com B.
[CompanyNameFilters]=3 AplicarFiltrar where condition: [CompanyName] like "[CÇ]*" Filtre por nomes de empresas que começam com C ou Ç.
... As linhas de ação de D a Y têm o mesmo formato de A a C ...
[CompanyNameFilters]=26 AplicarFiltrar where condition: [CompanyName] like "[ZÆØÅ]*" Filtre por nomes de empresas que começam com Z, Æ, Ø ou Å.
[CompanyNameFilters]=27 ShowAllRecords Mostrar todos os registros.
[RecordsetClone]. [RecordCount]>0 Controle de Botão Nome do Controle: CompanyName Se os registros forem retornados para a letra selecionada, mova o foco para o controle CompanyName.