Pode utilizar a ação de macro SearchForRecord em bases de dados de ambiente de trabalho do Access para procurar um registo específico numa tabela, consulta, formulário ou relatório.
Definição
A ação de macro ProcurarRegisto tem os seguintes argumentos.
Argumento de ação |
Descrição |
||||||||||
Tipo de Objeto |
Introduza ou selecione o tipo de objeto de base de dados no qual está a procurar. Pode selecionar Tabela, Consulta, Formulário ou Relatório. |
||||||||||
Nome do Objeto |
Introduza ou selecione o objeto específico que contém o registo a procurar. A lista pendente mostra todos os objetos de base de dados do tipo que selecionou para o argumento Tipo de Objeto . |
||||||||||
Gravar |
Especifique o ponto de partida e a direção da pesquisa.
|
||||||||||
Condição Where |
Introduza os critérios para a pesquisa utilizando a mesma sintaxe que uma cláusula WHERE do SQL, apenas sem a palavra "WHERE". Por exemplo: Description = "Beverages" Para criar um critério que inclua um valor de uma caixa de texto num formulário, tem de criar uma expressão que concatena a primeira parte do critério com o nome da caixa de texto que contém o valor para o qual pretende procurar. Por exemplo, o seguinte critério irá procurar no campo Descrição o valor na caixa de texto com o nome txtDescription no formulário com o nome frmCategories. Tenha em atenção o sinal de igual (=) no início da expressão e a utilização de plicas (') em ambos os lados da referência da caixa de texto: ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
Observações
-
Nos casos em que mais do que um registo corresponde aos critérios no argumento Condição Where , os seguintes fatores determinam que registo é encontrado:
-
A definição do argumento Gravar Consulte a tabela na secção Definições para obter mais informações sobre o argumento Registo .
-
A sequência de ordenação dos registos Por exemplo, se o argumento Registo estiver definido como Primeiro, alterar a sequência de ordenação dos registos poderá alterar o registo encontrado.
-
-
O objeto especificado no argumento Nome do Objeto tem de estar aberto antes de esta ação ser executada. Caso contrário, ocorre um erro.
-
Se os critérios no argumento Condição Where não forem cumpridos, não ocorrerá nenhum erro e o foco permanecerá no registo atual.
-
Ao procurar o registo anterior ou seguinte, a pesquisa não "encapsula" quando chega ao fim dos dados. Se não existirem mais registos que correspondam aos critérios, não ocorrerá nenhum erro e o foco permanecerá no registo atual. Para confirmar que foi encontrada uma correspondência, pode introduzir uma condição para a ação seguinte e tornar a condição igual aos critérios no argumento Condição Where .
-
Para executar a ação SearchForRecord num módulo VBA, utilize o método SearchForRecord do objeto DoCmd .
-
A ação de macro SearchForRecord é semelhante à ação de macro LocalizarRegisto, mas SearchForRecord tem funcionalidades de pesquisa mais avançadas. A ação de macro LocalizarRegisto é utilizada principalmente para localizar cadeias e duplica a funcionalidade da caixa de diálogo Localizar . A ação de macro SearchForRecord utiliza critérios mais semelhantes aos de um filtro ou de uma consulta SQL. A lista seguinte demonstra algumas coisas que pode fazer com a ação de macro ProcurarRegisto :
-
Pode utilizar critérios complexos no argumento Condição Where , como
-
Descrição = "Bebidas" e IDDaCategoria = 11
-
Pode referir-se a campos que estão na origem de registos de um formulário ou relatório, mas que não são apresentados no formulário ou relatório. No exemplo anterior, nem Description nem CategoryID têm de ser apresentados no formulário ou relatório para que os critérios funcionem.
-
Pode utilizar operadores lógicos, como <, >, AND, OR e BETWEEN. A ação LocalizarRegisto corresponde apenas a cadeias que sejam iguais, iniciadas ou contenham a cadeia que está a ser pesquisada.
Exemplo
A seguinte macro abre primeiro a tabela Categorias com a ação OpenTable . Em seguida, a macro utiliza a ação de macro SearchForRecord para localizar o primeiro registo na tabela onde o campo Descrição é igual a "Bebidas".
Ação |
Argumentos |
OpenTable |
Nome da Tabela: Categorias Ver: Folha de Dados Modo de Dados: Editar |
SearchForRecord |
Tipo de Objeto: Tabela Nome do Objeto: Categorias Registo: Primeiro Condição Where: Descrição = "Bebidas" |