Acção de Macro AplicarFiltro

Pode utilizar a ação AplicarFiltro para aplicar um filtro, uma consulta ou uma cláusula WHERE de SQL a uma tabela, a um formulário ou a um relatório para restringir ou ordenar os registos na tabela, ou os registos da tabela adjacente ou da consulta do formulário ou relatório. Nos relatórios, só pode utilizar esta ação numa macro especificada através da propriedade do evento AoAbrir do relatório.

Nota: Só pode utilizar esta ação para aplicar uma cláusula WHERE de SQL quando aplica um filtro de servidor. Um filtro de servidor não pode ser aplicado a uma origem de registo de um procedimento armazenado.

Nota: A ação da macro AplicarFiltro não está disponível nas aplicações Web do Access.

Definição

A ação AplicarFiltro tem os seguintes argumentos.

Argumento de ação

Descrição

Nome do Filtro

O nome de um filtro ou consulta que restringe ou ordena os registos de uma tabela, formulário ou relatório. Pode introduzir o nome de uma consulta existente ou de um filtro que foi guardado como uma consulta na caixa Nome do Filtro na secção Argumentos de Ação do painel Construtor de Macros.

Nota: Quando estiver a utilizar esta ação para aplicar um filtro de servidor, o argumento Nome do Filtro tem de estar em branco.

Condição Where

Uma cláusula WHERE de SQL válida (sem a palavra WHERE) ou uma expressão que restringe os registos da tabela, formulário ou relatório.

Nota: Numa expressão do argumento Condição Where, o lado esquerdo da expressão normalmente contém um nome do campo da tabela adjacente ou consulta para o formulário ou relatório. O lado direito da expressão normalmente contém os critérios que pretende aplicar a este campo para restringir ou ordenar os registos. Por exemplo, o critério pode ser o nome de um controlo noutro formulário que contém o valor ao qual pretende que os registos correspondam no primeiro formulário. O nome do controlo deve ser completamente qualificado, por exemplo:

Forms!nomedoformulário!nomedocontrolo

Os nomes dos campos devem estar entre aspas duplas e as cadeias literais devem estar entre aspas simples.

O comprimento máximo do argumento Condição Where é de 255 carateres. Se precisar de introduzir uma cláusula WHERE de SQL maior, utilize o método AplicarFiltro do objeto DoCmd num módulo VBA (Visual Basic for Applications). Pode introduzir instruções da cláusula WHERE de SQL com até 32.768 carateres no VBA.


Nota: Pode utilizar o argumento Nome do Filtro se já tiver definido um filtro que fornece os dados adequados. Pode utilizar o argumento Condição Where para introduzir o critério de restrição diretamente. Se utilizar ambos os argumentos, o Access aplica a cláusula WHERE aos resultados do filtro. Tem de utilizar um ou ambos os argumentos.

Observações

Pode aplicar um filtro ou consulta a um formulário na vista de Formulário ou na vista de Folha de dados.

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

Para tabelas e formulários, esta ação é semelhante ao clicar em Aplicar Filtro/Ordenação ou Aplicar Filtro de Servidor no menu Registos. O comando do menu aplica o filtro criado mais recentemente à tabela ou ao formulário, enquanto a ação AplicarFiltro aplica-se a um filtro ou consulta específica.

Numa base de dados do Access, se apontar para um Filtro no menu Registos e, em seguida, clicar em Filtro/Ordenação Avançados depois de executar a ação AplicarFiltro, o janela Filtro/Ordenação avançados apresenta os critérios de filtragem que selecionou com esta ação.

Para remover um filtro e apresentar todos os registos para uma tabela ou formulário numa base de dados do Access, pode utilizar a ação MostrarTodosRegistos ou o comando Remover Filtro/Ordenação no menu Registos. Para remover um filtro num projeto do Access (.adp), pode regressar à janela do Filtro de Servidor por Formulário e remover todos os critérios de filtragem e, em seguida, clicar em Aplicar Filtro de Servidor no menu Registos da barra de ferramentas ou definir a propriedade FiltroDoServidorPorFormulário para Falso (0).

Quando guarda uma tabela ou formulário, o Access os filtros definidos atualmente nesse objeto, mas não aplica os aplica automaticamente da próxima vez que o objeto é aberto (ainda que a ordenação que tenha aplicado ao objeto antes de ser guardado seja aplicada automaticamente). Se pretende aplicar um filtro automaticamente quando o formulário é aberto pela primeira vez, especifique a macro que contém a ação AplicarFiltro ou um procedimento de evento que contenha o método AplicarFiltro do objeto DoCmd como a definição da propriedade de evento AoAbrir do formulário. Também pode aplicar um filtro ao utilizar a ação AbrirFormulário ou AbrirRelatório ou os seus métodos correspondentes. Para aplicar um filtro automaticamente quando uma tabela é aberta pela primeira vez, pode abrir a tabela ao utilizar uma macro que contenha a ação AbrirTabela, seguida imediatamente pela ação AplicarFiltro.

Exemplo

Aplicar um filtro ao utilizar uma macro

A seguinte macro contém um conjunto de ações, cada uma delas filtra os registos para um formulário de Lista Telefónica de Clientes. Apresenta a utilização das ações AplicarFiltro, MostrarTodosRegistos e IrParaControlo. Também apresenta a utilização de condições para determinar que botão de alternar num grupo de opções foi selecionado no formulário. Cada linha de ação está associada a um botão de alternar que seleciona o conjunto de registos que começam por A, B, C, etc. ou todos os registos. Esta macro deve ser anexada ao evento DepoisDeAtualizar do grupo de opções FiltroDoNomeDaEmpresa.

Condição

Ação

Argumentos: Definição

Comentário

[FiltrosDoNomeDaEmpresa]=1

AplicarFiltro

Condição Where: [NomeDaEmpresa] Como "[AÀÁÂÃÄ]*"

Filtrar por nomes de empresas que comecem por A, À, Á, Â, Ã ou Ä.

[FiltrosDoNomeDaEmpresa]=2

AplicarFiltro

Condição Where: [NomeDaEmpresa] Como "B*"

Filtrar por nomes de empresas que comecem por B.

[FiltrosdoNomeDaEmpresa]=3

AplicarFiltro

Condição Where: [NomeDaEmpresa] Como "[CÇ]*"

Filtrar por nomes de empresas que comecem por C ou Ç.

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

[FiltrosDoNomeDaEmpresa]=26

AplicarFiltro

Condição Where: [NomeDaEmpresa] Como "[ZÆØÅ]*"

Filtrar por nomes de empresas que comecem por Z, Æ, Ø ou Å.

[FiltrosDoNomeDaEmpresa]=27

MostrarTodosRegistos

Mostrar todos os registos.

[RecordsetClone].[RecordCount]>0

IrParaControlo

Nome do Controlo: NomeDaEmpresa

Se os registos forem devolvidos para a letra selecionada, mova o foco para o controlo NomeDaEmpresa.


Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×