Criar, editar ou eliminar uma relação
Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Uma relação no Access ajuda-o a combinar dados de duas tabelas diferentes. Cada relação é composta por campos em duas tabelas com dados correspondentes. Por exemplo, poderá ter um campo IDDoProduto numa tabela Produtos e numa tabela DetalhesDaEncomenda. Cada registo na tabela DetalhesDaEncomenda tem um IDDoProduto que corresponde a um registo na tabela Produtos com o mesmo IDDoProduto.

Quando utilizar tabelas relacionadas numa consulta, a relação permite ao Access determinar os registos de cada tabela que deve combinar no conjunto de resultados. Uma relação também pode ajudar a evitar a perda de dados, impedindo a dessincronização dos dados eliminados e este processo chama-se integridade referencial.

Antes de trabalhar com relações, certifique-se de que compreende os conceitos em segundo plano. Para obter mais informações, consulte Guia para relações de tabelas e Introdução às relações de tabelas.

Neste artigo

Descrição Geral

Numa base de dados do Access, pode criar uma relação de tabela utilizando um dos seguintes métodos:

  • Na janela Relações, adicione as tabelas que pretende relacionar e, em seguida, arraste o campo a relacionar de uma tabela para a outra.

  • Arraste um campo para a folha de dados de uma tabela a partir do painel Lista de Campos.

Quando cria uma relação entre tabelas, os campos comuns não têm de ter os mesmos nomes, embora frequentemente tenham. Os campos comuns têm de ter o mesmo tipo de dados. No entanto, se o campo de chave primária for um campo Numeração Automática, o campo de chave externa também poderá ser um campo Número se a propriedade Tamanho do Campo de ambos os campos for igual. Por exemplo, poderá fazer corresponder um campo Numeração Automática e um campo Número se a propriedade Tamanho do Campo de ambos os campos for Número Inteiro Longo. Quando ambos os campos comuns são campos Número, estes têm de ter a mesma definição de propriedade Tamanho do Campo.

Início da Página

Criar uma relação de tabela utilizando a janela Relações

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Adicionar Tabelas.

  3. Selecione uma ou mais tabelas ou consultas e, em seguida, clique em Adicionar. Quando acabar de adicionar tabelas e consultas ao separador de documento Relações, clique em Fechar.

  4. Arraste um campo (normalmente a chave primária) a partir de uma tabela para o campo comum (a chave externa) na outra tabela. Para arrastar vários campos, prima a tecla CTRL, clique em cada campo e, em seguida, arraste-os. É apresentada a caixa de diálogo Editar Relações.Caixa de diálogo Editar Relações no Access com os campos de associação Clientes e Encomendas

  5. Verifique se os nomes de campo apresentados são os campos comuns da relação. Caso um nome de campo esteja incorreto, clique no nome de campo e selecione o campo adequado a partir da lista. Para impor integridade referencial para esta relação, selecione a caixa de verificação Impor Integridade Referencial. Para obter mais informações sobre a integridade referencial, consulte a secção sobre como Impor Integridade Referencial.

  6. Clique em Criar.

    O Access desenha uma linha de relação entre as duas tabelas. Caso tenha selecionado a caixa de verificação Impor Integridade referencial, a linha aparece mais espessa em cada ponta. Para além disto, e novamente apenas se tiver selecionado a caixa de verificação Impor Integridade Referencial, o número 1 aparece sobre a parte mais espessa da linha de relação e o símbolo de infinito () é apresentado sobre a parte mais espessa no outro lado da linha, conforme apresentado na seguinte imagem.Arraste um campo de uma tabela para o campo correspondente noutra tabela

    Notas: 

    • Para criar uma relação um-para-um    Os dois campos comuns (geralmente os campos de chave primária e chave externa) têm de ter um índice exclusivo. Isto significa que a propriedade Indexado destes campos deve estar configurada para Sim (Sem Duplicados). Se os dois campos tiverem um índice exclusivo, o Access cria uma relação um-para-um.

    • Para criar uma relação de muitos-para-um    O campo de um lado (geralmente da chave primária) da relação tem de ter um índice exclusivo. Isto significa que a propriedade Indexado para este campo deve estar configurada para Sim (Sem Duplicado). O campo do lado de muitos não deve ter um índice exclusivo. Pode ter um índice, mas este tem de permitir duplicados. Isto significa que a propriedade Indexado deste campo deve estar definida para Não ou Sim (Duplicação Autorizada). Quando um campo possui um índice exclusivo e o outro não, o Access cria uma relação um-para-muitos.

Início da Página

Criar uma relação de tabela utilizando o painel Lista de Campos para adicionar um campo

É possível adicionar um campo a uma tabela existente aberta na vista Folha de Dados arrastando-o a partir do painel Lista de Campos. O painel Lista de Campos apresenta campos disponíveis em tabelas relacionadas e campos disponíveis noutras tabelas na base de dados.

Quando arrastar um campo a partir de uma "outra" tabela (não relacionada) e depois concluir o Assistente de Pesquisas, é automaticamente criada uma nova relação um-para-muitos entre a tabela no painel Lista de Campos e a tabela para a qual arrastou o campo. Esta relação, criada pelo Access, não impõe a integridade referencial por predefinição. Para impor a integridade referencial, tem de editar a relação. Consulte a secção Editar uma relação para obter mais informações.

Abrir uma tabela na vista Folha de Dados

  • No Painel de Navegação, faça duplo clique na tabela.

Abrir o painel Lista de Campos

  • Prima ALT+F8. É apresentado o painel Lista de Campos.

    Painel Lista de Campos

O painel Lista de Campos mostra todas as outras tabelas da base de dados, agrupadas em categorias. Ao trabalhar com uma tabela na vista Folha de Dados, o Access mostra campos em duas categorias no painel Lista de Campos: Campos disponíveis em tabelas relacionadas e Campos disponíveis noutras tabelas. A primeira categoria lista todas as tabelas que apresentem uma relação com outra tabela com a qual esteja atualmente a trabalhar. A segunda categoria lista todas as tabelas com as quais a tabela não apresente qualquer relação.

No painel Lista de Campos, ao clicar no sinal de adição (+) junto ao nome de uma tabela, vê uma lista de todos os campos disponíveis nessa tabela. Para adicionar um campo à tabela, arraste o campo pretendido a partir do painel Lista de Campos para a tabela na Vista folha de dados.

Adicionar um campo e criar uma relação a partir do painel Lista de Campos

  1. Com a tabela aberta na vista Folha de Dados, prima Alt+F8. É apresentado o painel Lista de Campos.

  2. Em Campos disponíveis noutras tabelas, clique no sinal de adição (+) junto a um nome de tabela para apresentar a lista de campos nessa tabela.

  3. Arraste o campo pretendido a partir do painel Lista de Campos para a tabela aberta na vista Folha de Dados.

  4. Quando a linha de inserção for apresentada, largue o campo na posição pretendida.

    O Assistente de Pesquisas é iniciado.

  5. Siga as instruções para concluir o Assistente de Pesquisas.

    O campo é apresentado na tabela na vista Folha de Dados.

Quando arrastar um campo a partir de uma "outra" tabela (não relacionada) e concluir depois o Assistente de Pesquisas, é automaticamente criada uma nova relação um-para-muitos entre a tabela na Lista de Campos e a tabela para a qual arrastou o campo. Esta relação, criada pelo Access, não impõe a integridade referencial por predefinição. Para impor a integridade referencial, tem de editar a relação. Consulte a secção Editar uma relação para obter mais informações.

Início da Página

Editar uma relação

Para alterar uma relação, é necessário selecioná-la na janela Relações e depois editá-la.

  1. Posicione cuidadosamente o cursor para que aponte para a linha de relação e clique na linha para a selecionar.

    A linha de relação aparece mais espessa quando está selecionada.

  2. Com a linha de relação selecionada, faça duplo clique na mesma.

    – ou –

    No separador Estrutura das Relações , no grupo Ferramentas , clique em Editar Relações.

É apresentada a caixa de diálogo Editar Relações.

Abrir a caixa de diálogo Editar Relações

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Todas as Relações.

    São apresentadas todas as tabelas com relações mostrando as linhas de relação. Tenha em atenção que as tabelas ocultas (tabelas para as quais a caixa de verificação Oculto na caixa de diálogo Propriedades da tabela esteja selecionada) e respetivas relações não serão apresentadas, a menos que Mostrar Objetos Ocultos esteja selecionado na caixa de diálogo Opções de Navegação.

  3. Clique na linha da relação que pretende alterar. A linha de relação aparece mais espessa quando está selecionada.

  4. Faça duplo clique na linha de relação.

    - ou -

    No separador Estrutura das Relações , no grupo Ferramentas , clique em Editar Relações.

    É apresentada a caixa de diálogo Editar Relações.

    Caixa de diálogo Editar Relações no Access com os campos de associação Clientes e Encomendas

  5. Efetue as alterações pretendidas e, em seguida, clique em OK.

    A caixa de diálogo Editar Relações permite-lhe alterar uma relação de tabela. Especificamente, poderá alterar as tabelas ou consultas em qualquer lado da relação, ou os campos em qualquer lado. Poderá também definir o tipo de união, ou impor a integridade referencial e escolher uma opção em cascata. Para mais informações sobre o tipo de união e respetiva definição, consulte a secção sobre como definir o tipo de união. Para mais informações sobre a imposição de integridade referencial e escolha de uma opção em cascata, consulte a secção sobre como Impor integridade referencial.

Definir o tipo de associação

Quando definir uma relação de tabelas, os factos acerca da relação informam a estrutura das consultas. Por exemplo, se definir uma relação entre duas tabelas e, em seguida, criar uma consulta que empregue as duas tabelas, o Access seleciona automaticamente os campos correspondentes predefinidos com base nos campos especificados na relação. Poderá substituir esses valores predefinidos iniciais na consulta, mas os valores fornecidos pela relação serão muitas vezes os corretos. Dado que fazer corresponder e associar dados a partir de mais de uma tabela é algo que vai fazer com frequência em todas as bases de dados exceto nas mais simples, especificar predefinições criando relações pode poupar tempo e ser vantajoso.

Uma consulta com múltiplas tabelas combina informações a partir de mais de uma tabela fazendo corresponder os valores em campos comuns. A operação que faz a correspondência e a combinação denomina-se associação. Por exemplo, suponha que pretende visualizar encomendas de clientes. Deverá criar uma consulta que associe a tabela Clientes e a tabela Encomendas no campo ID de Cliente. O resultado da consulta contém informações de clientes e informações de encomendas apenas para as linhas nas quais tenha sido encontrada uma correspondência.

Um dos valores que é possível especificar para cada relação é o tipo de associação. O tipo de associação indica ao Access os registos a incluir no resultado de uma consulta. Por exemplo, considere novamente uma consulta que associe a tabela Clientes e a tabela Encomendas nos campos comuns que representam o ID de Cliente. Utilizando o tipo de associação predefinido (denominado associação interna), a consulta devolve apenas as linhas de Clientes e as linhas de Encomendas nas quais os campos comuns (também denominados campos associados) sejam iguais.

Contudo, suponha que pretende incluir todos os Clientes, mesmo que esses clientes ainda não tenham efetuado encomendas. Para tal, terá de alterar o tipo de associação de associação interna para aquilo que é conhecido como associação externa à esquerda. Uma associação externa à esquerda devolve todas as linhas na tabela do lado esquerdo da relação e apenas aquelas que têm correspondência na tabela no lado direito. Uma associação externa à direita devolve todas as linhas à direita e apenas aquelas que têm correspondência à esquerda.

Nota: Neste caso, "esquerda" e "direita" referem-se à posição das tabelas na caixa de diálogo Editar Relações, e não na janela Relações.

Deverá ter em atenção qual o resultado que irá pretender com maior frequência a partir de uma consulta que associe as tabelas nesta relação e definir depois o tipo de associação em conformidade.

Definir o tipo de associação

  1. Na caixa de diálogo Editar Relações, clique em Tipo de Associação.

    A caixa de diálogo Propriedades da Associação é apresentada.Caixa de diálogo Propriedades da Associação no Access apresentada com três opções de associações. é selecionada a primeira opção que indica apenas as linhas em que os campos associados de ambas as tabelas são iguais.

  2. Selecione a sua escolha e, em seguida, clique em OK.

A tabela que se segue (utilizando as tabelas Clientes e Encomendas) mostra as três opções apresentadas na caixa de diálogo Propriedades da Associação, o tipo de associação utilizado e se todas as linhas ou linhas correspondentes são devolvidas para cada tabela.

Escolha

Associação relacional

Tabela esquerda

Tabela direita

1. Incluir só as linhas onde os campos associados de ambas as tabelas são iguais.

Associação interna

Linhas correspondentes

Linhas correspondentes

2. Incluir TODOS os registos de 'Clientes' e apenas os registos de 'Encomendas' em que os campos associados são iguais.

Associação externa à esquerda

Todas as linhas

Linhas correspondentes

3. Incluir TODOS os registos de 'Encomendas' e apenas os registos de 'Clientes' em que os campos associados são iguais.

Associação externa à direita

Linhas correspondentes

Todas as linhas

Quando escolhe a opção 2 ou a opção 3, é apresentada uma seta na linha de relação. Esta seta aponta para o lado da relação que apresenta apenas linhas correspondentes.

Efetuar alterações na caixa de diálogo Propriedades da Associação

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Todas as Relações. São apresentadas todas as tabelas com relações, a exibir linhas de relação. Tenha em atenção que as tabelas ocultas (tabelas para as quais a caixa de verificação Oculto na caixa de diálogo Propriedades da tabela esteja selecionada) e respetivas relações não serão apresentadas, a menos que Mostrar Objetos Ocultos esteja selecionado na caixa de diálogo Opções de Navegação.

  3. Clique na linha da relação que pretende alterar. A linha de relação aparece mais espessa quando está selecionada.

  4. Faça duplo clique na linha de relação. É apresentada a caixa de diálogo Editar Relações.

  5. Clique em Tipo de Associação.

  6. Na caixa de diálogo Propriedades da Associação, selecione uma opção e, em seguida, clique em OK.Caixa de diálogo Propriedades da Associação no Access apresentada com três opções de associações. é selecionada a primeira opção que indica apenas as linhas em que os campos associados de ambas as tabelas são iguais.

  7. Efetue eventuais alterações adicionais à relação e, em seguida, clique em OK.

Início da Página

Impor integridade referencial

O objetivo da integridade referencial consiste em impedir registos órfãos – registos que fazem referência a outros registos que já não existem. É possível impor a integridade referencial ativando-a para uma relação de tabelas. Depois de imposta, o Access rejeita qualquer operação que viole a integridade referencial dessa relação de tabelas. Isto significa que o Access vai rejeitar atualizações que alterem o destino de uma referência e as eliminações que removam o destino de uma referência. Para que o Access propague as atualizações e eliminações de referências de modo a que todas as linhas se alterem em conformidade, consulte a secção Definir as opções de propagação.

Ativar ou desativar a integridade referencial

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Todas as Relações. São apresentadas todas as tabelas com relações a exibir as linhas de relação. Tenha em atenção que as tabelas ocultas (tabelas para as quais a caixa de verificação Oculto na caixa de diálogo Propriedades da tabela esteja selecionada) e respetivas relações não serão apresentadas, a menos que Mostrar Objetos Ocultos esteja selecionado na caixa de diálogo Opções de Navegação.

  3. Clique na linha da relação que pretende alterar. A linha de relação aparece mais espessa quando está selecionada.

  4. Faça duplo clique na linha de relação. É apresentada a caixa de diálogo Editar Relações.

  5. Selecione ou desmarque Impor Integridade Referencial.

  6. Efetue eventuais alterações adicionais à relação e, em seguida, clique em OK.

Caso imponha a integridade referencial, aplicam-se as seguintes regras:

  • Não é possível introduzir um valor no campo de chave externa de uma tabela relacionada se esse valor não existir no campo de chave primária da tabela primária; tal cria registos órfãos.

  • Não é possível eliminar um registo de uma tabela primária se existirem registos correspondentes numa tabela relacionada. Por exemplo, não pode eliminar um registo de colaborador da tabela Colaboradores se existirem encomendas atribuídas a esse colaborador na tabela Encomendas. No entanto, pode optar por eliminar um registo primário e todos os registos relacionados numa operação ao selecionar a caixa de verificação Propagar Eliminação dos Registos Relacionados.

  • Não é possível alterar um valor de chave primária na tabela primária se isso resultar em registos órfãos. Por exemplo, não é possível alterar um número de encomenda na tabela Encomendas se existirem itens de linha atribuídos a essa encomenda na tabela Detalhes da Encomenda. No entanto, pode optar por atualizar um registo primário e todos os registos relacionados numa única operação ao selecionar a caixa de verificação Propagar Atualização dos Campos Relacionados.

    Notas: Se tiver dificuldades em ativar a integridade referencial, tenha em atenção as seguintes condições necessárias para impor a integridade referencial:

    • O campo comum da tabela primária tem de ser uma chave primária ou de ter um índice exclusivo.

    • Os campos comuns têm de ter o mesmo tipo de dados. A única exceção é que um campo Numeração Automática pode estar relacionado com um campo Número que tenha uma definição de propriedade Tamanho do Campo correspondente a Número Inteiro Longo.

    • Ambas as tabelas existem na mesma base de dados do Access. A integridade referencial não pode ser imposta em tabelas ligadas. No entanto, se as tabelas de origem estiverem no formato do Access, pode abrir a base de dados na qual estão armazenadas e ativar a integridade referencial nessa base de dados.

Definir as opções de propagação

É possível que se depare com uma situação em que seja necessário alterar o valor no lado "um" de uma relação. Nesse caso, precisa que o Access atualize automaticamente todas as linhas afetadas como parte de uma única operação. Dessa forma, a atualização será concluída na totalidade, de modo a que a base de dados não fique num estado inconsistente (com algumas linhas atualizadas e outras não). O Access ajuda-o a evitar este problema suportando a opção Propagar Atualização dos Campos Relacionados. Quando impõe a integridade referencial e escolhe a opção Propagar Atualização dos Campos Relacionados e, em seguida, atualiza uma chave primária, o Access atualiza automaticamente todos os campos com referência à chave primária.

Também poderá ter de eliminar uma linha e todos os registos relacionados — por exemplo, um registo de transitário e todas as encomendas relacionadas para esse transitário. Por este motivo, o Access suporta a opção Propagar Eliminação dos Registos Relacionados. Quando impõe a integridade referencial e seleciona a caixa de verificação Propagar Eliminação dos Registos Relacionados, o Access elimina automaticamente todos os registos que referenciem a chave primária quando o utilizador elimina o registo que contém a chave primária.

Ativar ou desativar a propagação de atualizações e/ou eliminações

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Todas as Relações. São apresentadas todas as tabelas com relações a exibir as linhas de relação. Tenha em atenção que as tabelas ocultas (tabelas para as quais a caixa de verificação Oculto na caixa de diálogo Propriedades da tabela esteja selecionada) e respetivas relações não serão apresentadas, a menos que Mostrar Objetos Ocultos esteja selecionado na caixa de diálogo Opções de Navegação.

  3. Clique na linha da relação que pretende alterar. A linha de relação aparece mais espessa quando está selecionada.

  4. Faça duplo clique na linha de relação. É apresentada a caixa de diálogo Editar Relações.

  5. Selecione a caixa de verificação Impor Integridade Referencial.

  6. Selecione a caixa de verificação Propagar Atualização dos Campos Relacionados ou a caixa de verificação Propagar Eliminação dos Registos Relacionados, ou ambas.

  7. Efetue eventuais alterações adicionais à relação e, em seguida, clique em OK.

Nota: Se a chave primária for um campo Numeração Automática, o facto de selecionar a caixa de verificação Propagar Atualização dos Campos Relacionados não tem qualquer efeito, pois não é possível alterar o valor de um campo Numeração Automática.

Início da Página

Eliminar uma relação de tabelas

Importante: Quando remove uma relação, está também a remover o suporte de integridade referencial para essa relação, caso esteja ativado. Por conseguinte, o Access deixará de impedir automaticamente a criação de registos órfãos no lado "muitos" de uma relação.

Para remover uma relação de tabelas, tem de eliminar a linha de relação na janela Relações. Posicione o cursor para que aponte para a linha de relação e, em seguida, clique na linha. A linha de relação parece mais espessa quando está selecionada. Com a linha de relação selecionada, prima a tecla DELETE.

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

  2. No separador Estrutura das Relações , no grupo Relações , clique em Todas as Relações. São apresentadas todas as tabelas com relações a exibir as linhas de relação. Tenha em atenção que as tabelas ocultas (tabelas para as quais a caixa de verificação Oculto na caixa de diálogo Propriedades da tabela esteja selecionada) e respetivas relações não serão apresentadas, a menos que Mostrar Objetos Ocultos esteja selecionado na caixa de diálogo Opções de Navegação.

  3. Clique na linha da relação que pretende eliminar. A linha de relação parece mais espessa quando está selecionada.

  4. Prima a tecla DELETE.

  5. O Access poderá apresentar a mensagem Tem a certeza que quer eliminar a relação selecionada definitivamente da base de dados?. Se esta mensagem de confirmação for apresentada, clique em Sim.

Nota: Se alguma das tabelas da relação de tabela estiver em utilização, talvez por outra pessoa ou processo, ou num objeto de base de dados aberto (tal como um formulário), não será possível eliminar a relação. Terá de fechar todos os objetos eventualmente abertos que utilizem estas tabelas antes de tentar remover a relação.

Início da Página

Consulte Também

Adicionar um campo de pesquisa a uma tabela

O que é a janela Relações?

Comparar duas tabelas no Access e localizar apenas os dados correspondentes

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.