Criar e executar uma consulta Eliminar

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

Quando quiser eliminar rapidamente muitos dados ou eliminar um conjunto de dados regularmente numa base de dados de ambiente de trabalho do Access, uma consulta eliminar ou atualizar pode ser útil porque as consultas permitem especificar critérios para localizar e eliminar os dados rapidamente. A utilização de uma consulta também pode poupar tempo porque pode reutilizar uma consulta guardada.

Nota

Antes de eliminar dados ou de executar uma consulta eliminar, certifique-se de que faz uma cópia de segurança da base de dados de ambiente de trabalho do Access.

Se pretende eliminar apenas alguns registos, não precisa de uma consulta. Abra a tabela na vista Folha de Dados, selecione os campos (colunas) ou registos (linhas) que pretende eliminar e, em seguida, prima Delete.

Importante

As informações incluídas neste artigo destinam-se a utilização apenas em bases de dados de ambiente de trabalho. Não pode utilizar as consultas de eliminação ou atualização em aplicações Web do Access.

Neste artigo

Escolher um tipo de consulta

Pode utilizar uma consulta atualização ou uma consulta eliminar para eliminar dados da sua base de dados. Selecione uma consulta com base nos detalhes da seguinte tabela:

Tipo de consulta Quando utilizá-lo Resultados
Utilizar uma consulta eliminar Para remover registos (linhas) inteiros de uma tabela ou de duas tabelas relacionadas em simultâneo.
Observação: Se os registos residirem no lado "um" de uma relação um-para-muitos, poderá ter de alterar a relação antes de executar a consulta eliminar. Consulte a secção sobre eliminar dados de tabelas relacionadas.
As consultas de eliminação removem todos os dados em cada campo, incluindo o valor chave que torna um registo exclusivo
Utilizar uma consulta atualização Para eliminar valores de campos individuais de uma tabela. Facilita a eliminação de valores ao atualizar os valores existentes para um valor nulo (ou seja, sem dados) ou uma cadeia de comprimento zero (um par de aspas duplas sem espaço entre elas).

Início da Página

Aspetos a verificar antes de utilizar uma consulta para eliminar quaisquer dados

  • Certifique-se de que o ficheiro não é só de leitura:

    1. Clique com o botão direito do rato em Iniciar e clique em Abrir Explorador do Windows.
    2. Clique com o botão direito do rato no ficheiro da base de dados e clique em Propriedades.
    3. Verifique se o atributo Somente leitura está selecionado.
  • Verifique se tem as permissões necessárias para eliminar registos da base de dados. Se tiver dúvidas, contacte o administrador de sistema ou o estruturador da base de dados.

  • Certifique-se de que ativou o conteúdo na base de dados. Por predefinição, o Access bloqueia todas as consultas de ação (consultas eliminar, atualizar e criar tabela), a menos que confie primeiro na base de dados. Para obter informações sobre como confiar em um banco de dados, consulte a seção Impedir que o Modo Desabilitado bloqueie uma consulta.

  • Peça aos outros utilizadores da base de dados para fecharem todas as tabelas, formulários, consultas e relatórios que utilizem os dados que pretende eliminar. Isto ajuda a evitar violações de bloqueio.

  • Antes de editar ou eliminar registos, é boa ideia fazer uma cópia de segurança da base de dados, caso pretenda reverter as alterações.

Sugestão

Se um grande número de utilizadores se ligar à base de dados, poderá ter de fechar a base de dados e, em seguida, reabri-la no modo Exclusivo .

Para abrir uma base de dados no modo Exclusivo

  1. Clique em Abrir , separador >Ficheiro.
  2. Procure e aponte para selecionar o banco de dados, clique na seta ao lado do botão Abrir e clique em Abrir Exclusivo.
    Abrir ficheiros no modo Exclusivo

Criar uma cópia de segurança da base de dados

  1. Clique no separador Ficheiro , aponte para Guardar Como.
  2. Clique em Salvar banco de dados como, clique em Fazer backup do banco de dados. O Access fecha o ficheiro original, cria uma cópia de segurança e reabre o ficheiro original.
  3. Clique em Salvar como , especifique um nome e um local para a cópia de backup e clique em Salvar.

Nota

Se estiver a utilizar um só de leitura ou uma base de dados criada na versão anterior do Access, poderá aparecer uma mensagem a indicar que não é possível criar uma cópia de segurança da mesma.

Para restaurar uma cópia de segurança, feche e mude o nome do ficheiro original, de modo a que a cópia de segurança possa utilizar o nome da versão original. Atribua o nome da versão original à cópia de segurança e abra esta no Access.

Utilizar uma consulta eliminar

Para criar uma consulta eliminar, clique no separador Criar , no grupo Consultas , clique em Estrutura da Consulta. Faça duplo clique em cada tabela cujas tabelas pretende eliminar registos e, em seguida, clique em Fechar.

A tabela aparece como janela na secção superior da grelha de estrutura da consulta. Na lista de campos, faça duplo clique no asterisco (*) para adicionar todos os campos na tabela à grelha de estrutura.

Utilizar critérios específicos numa consulta eliminar

Importante

Utilize critérios para devolver apenas os registos que pretende eliminar. Caso contrário, a consulta eliminar removerá todos os registos da tabela.

Faça duplo clique no campo que pretende especificar como critério para eliminação, introduza um dos critérios na linha Critérios do estruturador de consultas e, em seguida, desmarque a caixa de verificação Mostrar para cada campo de critérios.

Um exemplo de quando poderá querer utilizar esta opção: Suponha que pretende remover todas as encomendas pendentes de um cliente. Para encontrar apenas esses registos, adicione os campos ID do Cliente e Data da Encomenda à grelha de estrutura da consulta e, em seguida, introduza o número de ID do cliente e a data em que as encomendas desse cliente se tornaram inválidas.

  1. No separador Estrutura , clique em Ver>Vista de Folha de Dados.
  2. Verifique se a consulta devolve os registos que pretende eliminar e, em seguida, prima CTRL+S para guardar a consulta.
  3. Para executar a consulta, faça duplo clique nela no Painel de Navegação.

Início da Página

Utilizar uma consulta atualização

Nota

Não pode utilizar a opção de consulta atualização numa aplicação Web do Access.

Esta secção explica como utilizar uma consulta atualização para eliminar campos individuais de tabelas. Lembre-se de que a execução de uma consulta atualização para eliminar dados irá alterar os valores existentes para NULL ou uma cadeia de comprimento zero (um par de aspas duplas sem espaço entre os dois), dependendo dos critérios que especificar.

  1. Clique no separador Criar e, no grupo Consultas , clique em Estrutura da Consulta.

  2. Selecione a tabela que tem os dados que pretende eliminar (se a tabela estiver relacionada, selecione a tabela no lado "um" da relação), clique em Adicionar e, em seguida, clique em Fechar.
    A tabela aparece como janela na secção superior da grelha de estrutura da consulta. A janela lista todos os campos na tabela selecionada.

  3. Faça duplo clique no asterisco (*) para adicionar todos os campos na tabela à grelha de estrutura. Adicionar todos os campos da tabela permite à consulta eliminar remover registos (linhas) inteiros da tabela.
    Opcionalmente, pode introduzir critérios para um ou mais campos na linha Critérios do estruturador e, em seguida, desmarcar a caixa de verificação Mostrar para cada campo de critérios. Para obter mais informações sobre como usar critérios, consulte a tabela Sample criteria for select queries .

    Nota

    Utilize critérios para devolver apenas os registos que pretende alterar. Caso contrário, a consulta atualização irá definir como NULL todos os registos em cada um dos campos na sua consulta.

  4. No separador Estrutura, no grupo Resultados, clique em Vista e, em seguida, clique em Vista Folha de Dados.

  5. Verifique se a consulta devolve os registos que pretende definir como NULO ou uma cadeia de comprimento zero (um par de aspas duplas sem espaço entre elas ("").

  6. Conforme necessário, repita os passos 3 a 5 e altere os campos ou critérios até a consulta devolver apenas os dados que pretende eliminar e, em seguida, prima CTRL+S para guardar a consulta.

  7. Para executar a consulta, faça duplo clique nela no Painel de Navegação.

Início da Página

Informações Adicionais

Se pretender eliminar dados de várias tabelas relacionadas, tem de ativar as opções Integridade Referencial e Propagar Eliminação dos Registos Relacionados para cada relação. Isto permite que a consulta elimine dados das tabelas nos lados "um" e "muitos" da relação. A preparação para a eliminação de dados relacionados requer a verificação do seguinte:

  • Determine que registos residem no lado "um" da relação e quais residem no lado "muitos".
  • Se precisar de eliminar registos no lado "um" da relação e os registos relacionados no lado "muitos", ativa um conjunto de regras com o nome Integridade Referencial e ativa as eliminações em cascata. Os passos nesta secção explicam a Integridade Referencial e como efetuar ambas as tarefas.
  • Se precisar de eliminar registos apenas no lado "um" da relação, primeiro eliminará essa relação e, em seguida, eliminará os dados.

Se precisar de remover dados apenas no lado "muitos" da relação, pode criar e executar a sua consulta eliminar sem ter de alterar a relação.

Para saber que registos residem nos lados "um" e "muitos" de uma relação, no separador Ferramentas da Base de Dados , no grupo Relações , clique em Relações. O separador Relações apresenta as tabelas da sua base de dados e as relações. Cada relação é representada como uma linha que liga tabelas entre campos.

A seguinte figura mostra uma relação típica. A maioria, se não todas, as relações numa base de dados têm um lado "um" e um lado "muitos". O diagrama de relações indica o lado "um" com o algarismo um (1) e o lado "muitos" com o símbolo do infinito ().

Uma relação entre duas tabelas

Quando elimina registos no lado "um" da relação, também elimina todos os registos relacionados no lado "muitos" da relação. No entanto, quando elimina registos no lado "muitos" de uma relação, normalmente não elimina registos no lado "um".

Além disso, o Access impõe automaticamente um conjunto de regras denominado integridade referencial. Estas regras asseguram que as chaves externas numa base de dados contêm os valores corretos. Uma chave externa é uma coluna cujos valores correspondem aos valores na coluna de chave primária de outra tabela.

Editar a relação

Siga estes passos apenas quando precisar de eliminar dados dos lados "um" e "muitos" de uma relação.

  1. No separador Ferramentas da Base de Dados, no grupo Relações, clique em Relações.

  2. Clique com o botão direito do rato na relação (a linha) que liga as tabelas envolvidas na operação de eliminação e, em seguida, clique em Editar Relação no menu de atalho.

  3. Na caixa de diálogo Editar Relações , certifique-se de que a caixa de verificação Impor Integridade Referencial está selecionada.

  4. Selecione a caixa de verificação Propagar Eliminação dos Registos Relacionados .

    Nota

    Até desativar esta propriedade novamente, a eliminação de um registo no lado "um" da relação irá eliminar todos os registos relacionados no lado "muitos" da relação.

  5. Clique em OK, feche o painel Relações e avance para o próximo conjunto de passos.

Eliminar uma relação

  1. Caso ainda não o tenha feito, abra o painel Relações .
  2. No separador Ferramentas da Base de Dados, no grupo Relações, clique em Relações.
    Anote os campos envolvidos na relação para que possa restaurá-la depois de eliminar os dados.
  3. Clique com o botão direito do rato na relação (a linha) que liga as tabelas envolvidas na operação de eliminação e, em seguida, clique em Eliminar no menu de atalho.

Nota

Para restaurar a relação, siga os passos anteriores para abrir o painel Relações e, em seguida, arraste o campo de chave primária da tabela "um" e largue-o no campo de chave externa da tabela "muitos". É apresentada a caixa de diálogo Editar Relação . Se a relação antiga impunha integridade referencial, selecione Impor Integridade Referencial e clique em Criar. Caso contrário, basta clicar em Criar.

Início da Página

Exemplo de critérios para consultas de seleção

A tabela seguinte lista alguns critérios de exemplo que pode utilizar em consultas selecionar quando pretende certificar-se de que elimina apenas os dados que pretende eliminar. Alguns destes exemplos utilizam carateres universais.

Critérios Efeito
> 234 Devolve todos os números maiores que 234. Para localizar todos os números inferiores a 234, utilize < 234.
>= "Cajhen" Devolve todos os registos desde Cardoso até ao final do alfabeto.
Entre #2/2/2010# E #1/12/2010# Devolve datas entre 2-fev-2010 e 1-dez-2010 (ANSI-89). Se a base de dados utilizar os carateres universais ANSI-92, utilize plicas (') em vez de sinais de cardinal (#). Exemplo: Entre '2/2/2010' E '1/12/2010'.
Negado "Alemanha" Localiza todos os registos nos quais o conteúdo exato do campo não seja exatamente igual a "Alemanha". O critério irá devolver registos que contenham carateres para além de "Alemanha", por exemplo "Alemanha (Euro)" ou "Europa (Alemanha)".
Negado "T*" Localiza todos os registos, exceto aqueles que começam com a letra T. Se a base de dados utilizar o conjunto de carateres universais ANSI-92, utilize o sinal de percentagem (%) em vez do asterisco (*).
Não "*t" Localiza todos os registos que não terminam com a letra T. Se a base de dados utilizar o conjunto de carateres universais ANSI-92, utilize o sinal de percentagem (%) em vez do asterisco (*).
Em(Canadá,Reino Unido) Numa lista, localiza todos os registos que contêm Canadá ou Reino Unido.
Como "[A-D]*" Num campo Texto, localiza todos os registos que começam com as letras A a D. Se a base de dados utilizar o conjunto de carateres universais ANSI-92, utilize o sinal de percentagem (%) em vez do asterisco (*).
Como "*ar*" Localiza todos os registos que incluem a sequência de letras "ar". Se a base de dados utilizar o conjunto de carateres universais ANSI-92, utilize o sinal de percentagem (%) em vez do asterisco (*).
Como "Solar Celt?" Localiza todos os registos que começam com "Solar" e que contêm uma segunda cadeia com 5 letras sendo as 4 primeiras "Celt" e a última é desconhecida. Se a base de dados utilizar o conjunto de carateres universais ANSI-92, utilize o caráter de sublinhado (_) em vez do ponto de interrogação (?).
#2/2/2010# Localiza todos os registos de 02 de fevereiro de 2010. Se a base de dados utilizar o conjunto de carateres universais ANSI-92, coloque plicas iniciais e finais na data em vez de sinais de cardinal ('2/2/2010').
< Data() - 30 Utiliza a função Data para devolver todas as datas com mais de 30 dias.
Data() Utiliza a função Data para devolver todos os registos com a data atual.
Entre Data() E SomData("M"; 3; Data()) Utiliza as funções Date e DateAdd para devolver todos os registos entre a data atual e três meses a partir da data de hoje.
É Nulo Devolve todos os registos que contêm um valor nulo (em branco ou indefinido).
Não É Nulo Devolve todos os registos que contêm valores (que não são nulos).
"" Devolve todos os registos que contêm uma cadeia de comprimento zero. Utilize cadeias de comprimento zero quando necessitar de adicionar um valor a um campo obrigatório, mas ainda não souber qual é o valor real. Por exemplo, um campo poderá necessitar de um número de fax, mas alguns dos clientes poderão não ter aparelhos de fax. Nesse caso, em vez de introduzir um número, introduza um par de aspas duplas sem nenhum espaço entre elas (""").

Início da Página

Sugestões de resolução de problemas

Por que razão me foi apresentada esta mensagem de erro e como posso corrigir o erro?

Se criar uma consulta Eliminar utilizando múltiplas tabelas e a propriedade Registos Exclusivos da consulta estiver definida como Não, o Access apresenta a mensagem de erro; Não foi possível eliminar a partir das tabelas especificadas ao executar a consulta.

Para resolver este problema, defina a propriedade Registos Exclusivos como Sim.

  1. Abra a consulta eliminar na vista de Estrutura.
  2. Se a folha de propriedades da consulta não estiver aberta, prima a tecla F4 para abri-la.
  3. Clique no estruturador de consultas para apresentar as propriedades da consulta (em vez das propriedades do campo).
  4. Localize a propriedade Registos Exclusivos na folha de propriedades da consulta e defina-a como Sim.

Impedir que o Modo Desativado bloqueie uma consulta

Por predefinição, se abrir uma base de dados de ambiente de trabalho na qual escolheu não confiar ou que reside não numa localização fidedigna, o Access bloqueia a execução de todas as consultas de ação.

Se tentar executar uma consulta de ação e parecer que nada acontece, verifique se a barra de estado do Access apresenta a seguinte mensagem:

Esta ação ou evento foi bloqueado pelo Modo Desativado.

Quando essa mensagem aparecer, faça o seguinte passo para ativar o conteúdo bloqueado:

  • Na Barra de Mensagens de Aviso , clique em Ativar Conteúdo e execute a consulta novamente.

Início da Página