Ação de macro AplicarFiltro

Você pode usar a ação ApplyFilter para aplicar uma filtro, uma consulta ou uma cláusula WHERE SQL a uma tabela, formulário ou relatório para restringir ou classificar 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 um macro especificado pela propriedade de evento OnOpen 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 ação de macro ApplyFilter não está disponível em aplicativos Web do Access.

Configuração

A ação ApplyFilter 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 foi salvo como uma consulta na caixa Nome do Filtro na seção Argumentos de Ação do painel Construtor de Macros.

Observação: Quando você está usando 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 um expressão que restringe os registros da tabela, formulário ou relatório.

Observação: Em uma expressão de argumento Where Condition, o lado esquerdo da expressão normalmente contém um nome de campo da tabela ou consulta subjacente para o formulário ou relatório. O lado direito da expressão normalmente contém as 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 que você deseja que os registros no primeiro formulário sejam match. O nome do controle deve ser totalmente qualificado, por exemplo:

Formulários! formname! controlname

Os nomes de campo devem estar entre aspas duplas e literais de cadeia de caracteres devem estar entre aspas simples.

O comprimento máximo do argumento Where Condition é de 255 caracteres. Se você precisar inserir uma cláusula WHERE mais SQL, use o método ApplyFilter do objeto DoCmd em um módulo Visual Basic for Applications (VBA). Você pode inserir SQL instruções de cláusula WHERE de até 32.768 caracteres no VBA.


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

Comentários

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

O filtro e a condição WHERE que você aplicar se tornará a configuração da propriedade Filter ou ServerFilter do formulário ou relatório.

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

Em um banco de dados do Access, se você apontar para Filtrar no menu Registros e clicar em Filtro Avançado/Classificar após executar a ação ApplyFilter, o 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 Access, você pode usar a ação ShowAllRecords ou o comando Remover Filtro/Classificação no menu Registros. Para remover um filtro em um projeto do Access (.adp), você pode retornar à janela Filtro do Servidor por Formulário, remover todos os critérios de filtro e, em seguida, clicar em Aplicar Filtro de Servidor no menu Registros na barra de ferramentas ou definir a propriedade ServerFilterByForm como False (0).

Quando você salva uma tabela ou formulário, o Access salva qualquer filtro definido no momento nesse objeto, mas não aplicará o filtro automaticamente na próxima vez que o objeto for aberto (embora ele aplicará automaticamente qualquer classificação que você aplicou ao objeto antes de ser salvo). Se você quiser aplicar um filtro automaticamente quando um formulário for aberto pela primeira vez, especifique uma macro que contenha a ação ApplyFilter ou um procedimento de evento que contenha o método ApplyFilterdo 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 seus métodos correspondentes. Para aplicar um filtro automaticamente quando uma tabela é aberta pela primeira vez, você pode abrir a tabela usando uma macro que contém a ação OpenTable, seguida imediatamente pela ação ApplyFilter.

Exemplo

Aplicar um filtro usando uma macro

A macro a seguir contém um conjunto de ações, cada uma das quais filtra os registros para um formulário de Lista de Telefones para Cliente. Ele mostra o uso das ações ApplyFilter,ShowAllRecordse GoToControl. Ele também mostra o uso de 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 começando com A, B, C e assim por diante ou todos os registros. Essa macro deve ser anexada ao evento AfterUpdate do grupo de opções CompanyNameFilter.

Condição

Ação

Argumentos: Configuração

Comentário

[CompanyNameFilters]=1

ApplyFilter

Condição where: [CompanyName] like "[AÀÁÂÃÃÄ]*"

Filtrar nomes da empresa que começam com A, À, Á, Â, Ã ou Ä.

[CompanyNameFilters]=2

ApplyFilter

Condição where: [CompanyName] like "B*"

Filtrar nomes da empresa que começam com B.

[CompanyNameFilters]=3

ApplyFilter

Condição where: [CompanyName] Like "[CÇ]*"

Filtrar nomes da empresa que começam com C ou Ç.

... As linhas de ação para D a Y têm o mesmo formato de A a C...

[CompanyNameFilters]=26

ApplyFilter

Condição where: [CompanyName] like "[ZÆØÅ]*"

Filtrar nomes da empresa que começam com Z, Æ, Ø ou Å.

[CompanyNameFilters]=27

ShowAllRecords

Mostrar todos os registros.

[RecordsetClone]. [RecordCount]>0

GoToControl

Nome do Controle: CompanyName

Se os registros forem retornados para a letra selecionada, mova o foco para o controle CompanyName.


Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

×