Um dos objectivos de uma boa estrutura de base de dados consiste em remover redundância de dados (dados duplicados). Para alcançar esse objectivo, deverá dividir os dados em muitas tabelas baseadas em assunto, para que cada facto seja representado apenas uma vez. Deverá depois fornecer ao Microsoft Office Access 2007 os meios para reunir novamente as informações divididas. Para tal, deverá colocar campos comuns em tabelas relacionadas. Contudo, para efectuar correctamente este passo, terá primeiro de compreender as relações entre as tabelas e especificar depois essas relações na base de dados do Office Access 2007.
Para mais informações, consulte o artigo Princípios básicos da estrutura de bases de dados.
Neste artigo
Introdução
Depois de criar uma tabela para cada assunto na base de dados, terá de fornecer ao Office Access 2007 uma forma de reunir novamente essas informações quando necessário. Para tal, é necessário colocar campos comuns em tabelas relacionadas e definir relações entre as tabelas. Poderá depois criar consultas, formulários e relatórios que apresentem informações de diversas tabelas de uma só vez. Por exemplo, o formulário aqui apresentado inclui informações obtidas a partir de várias tabelas:


As informações neste formulário provêm da tabela Clientes...

...tabela Encomendas...

...tabela Produtos...

...e da tabela Detalhes da Encomenda.
O nome de cliente na caixa Cobrar A é obtido a partir da tabela Clientes; os valores ID da Encomenda e Data da Encomenda provêm da tabela Encomendas; o nome Produto provem da tabela Produtos; e os valores Preço Unitário e Quantidade provêm da tabela Detalhes da Encomenda. Estas tabelas estão ligadas entre si de várias formas para trazer informações de cada uma para o formulário.
No exemplo anterior, os campos existentes nas tabelas têm de ser coordenados para que apresentem informações sobre a mesma encomenda. Esta coordenação é conseguida utilizando-se relações de tabelas. Uma relação de tabela funciona fazendo corresponder dados em campos chave (frequentemente um campo com o mesmo nome em ambas as tabelas). Na maioria dos casos, estes campos correspondentes são a chave primária de uma tabela (a qual fornece um identificador exclusivo para cada registo) e uma chave externa na outra tabela. Por exemplo, os empregados podem ser associados a encomendas pelas quais sejam responsáveis criando-se uma relação de tabela entre os campos CódigoDoEmpregado nas tabelas Empregados e Encomendas.


CódigoDoEmpregado aparece em ambas as tabelas: como chave primária...

... e como uma chave externa.
Parte Superior da Página
Tipos de relações de tabela
Existem três tipos de relações de tabela.
- Uma relação um-para-muitos
Considere uma base de dados de registo de encomendas que inclua uma tabela Clientes e uma tabela Encomendas. Um cliente pode efectuar qualquer número de encomendas. Por conseguinte, por qualquer cliente representado na tabela Clientes, podem existir muitas encomendas representadas na tabela Encomendas. A relação entre a tabela Clientes e a tabela Encomendas e, por conseguinte, uma relação um-para-muitos.
Para representar uma relação um-para-muitos na estrutura da base de dados, adicione a chave primária do lado "um" da relação como campo ou campos adicionais à tabela no lado "muitos" da relação. Neste caso, por exemplo, deverá adicionar um novo campo (o campo Código da tabela Clientes) à tabela Encomendas e atribuir-lhe o nome CódigoDoCliente. O Access poderá depois utilizar o número de Código do Cliente na tabela Encomendas para localizar o cliente correcto de cada encomenda.
- Uma relação muitos-para-muitos
Considere a relação entre uma tabela Produtos e uma tabela Encomendas. Uma única encomenda pode incluir mais de um produto. Por outro lado, um único produto pode aparecer em várias encomendas. Como tal, para cada registo na tabela Encomendas, podem existir vários registos na tabela Produtos. Além disso, para cada registo na tabela Produtos, podem existir vários registos na tabela Encomendas. Este tipo de relação é designada por uma relação muitos-para-muitos, pois podem existir várias encomendas para qualquer produto e vários produtos para qualquer encomenda. Tenha em atenção que, para detectar relações muitos-para-muitos existentes entre as tabelas, é importante considerar ambos os lados da relação.
Para representar uma relação muitos-para-muitos, terá de criar uma terceira tabela, frequentemente apelidada de tabela de união, a qual divide a relação muitos-para-muitos em duas relações um-para-muitos. A chave primária de cada uma das duas tabelas é introduzida na terceira tabela. Como tal, a terceira tabela regista cada ocorrência, ou instância, da relação. Por exemplo, a tabela Encomendas e a tabela Produtos têm uma relação muitos-para-muitos que é definida criando-se duas relações um-para-muitos para a tabela Detalhes da Encomenda. Uma encomenda pode ter muitos produtos e cada produto pode aparecer em muitas encomendas.
- Uma relação um-para-um
Numa relação um-para-um, cada registo na primeira tabela só pode ter um registo correspondente na segunda tabela, e cada registo na segunda tabela só pode ter um registo correspondente da primeira tabela. Este tipo de relação não é comum porque, na maioria das vezes, as informações relacionadas desta forma são armazenadas na mesma tabela. Poderá utilizar uma relação um-para-um para dividir uma tabela com muitos campos, para isolar parte de uma tabela por motivos de segurança ou para armazenar informações aplicáveis apenas a um subconjunto da tabela principal. Quando uma relação deste tipo é identificada, ambas as tabelas têm de partilhar um campo em comum.
Parte Superior da Página
Porquê criar relações de tabela?
É possível criar explicitamente relações de tabela utilizando a janela Relações ou arrastando um campo a partir do painel Lista de Campos. O Office Access 2007 utiliza relações de tabela para associar tabelas quando é necessário utilizá-las num objecto de base de dados. Existem várias razões para criar relações de tabela antes de criar outros objectos de base de dados, tais como formulários, consultas e relatórios.
- As relações de tabela informam as estruturas de consulta
Para trabalhar com registos a partir de mais do que uma tabela, é frequentemente necessário criar uma consulta que associe as tabelas. A consulta funciona fazendo corresponder os valores no campo de chave primária da primeira tabela com um campo de chave externa na segunda tabela. Por exemplo, para devolver linhas que listem todas as encomendas de cada cliente, deverá criar uma consulte que associe a tabela Clientes à tabela Encomendas com base no campo Código do Cliente. Na janela Relações, é possível especificar manualmente os campos a associar. Contudo, se já tiver definido uma relação entre as tabelas, o Office Access 2007 irá fornecer a associação predefinida, com base na relação de tabela existente. Além disso, se utilizar um dos assistentes de consultas, o Access irá utilizar as informações recolhidas das relações de tabela já definidas para apresentar escolhas informadas e pré-preencher definições de propriedade com valores predefinidos apropriados.
- As relações de tabela informam as estruturas de formulário e relatório
Quando um formulário ou relatório é criado, o Office Access 2007 utiliza as informações recolhidas das relações de tabela já definidas para apresentar escolhas informadas e pré-preencher definições de propriedade com valores predefinidos apropriados.
- As relações de tabela são a base sobre a qual é possível impor integridade referencial para ajudar a evitar registos órfãos na base de dados. Um registo órfão é um registo com uma referência para outro registo inexistente (por exemplo, um registo de encomenda que faça referência a um registo de cliente inexistente).
Quando estrutura uma base de dados, divide as informações em tabelas, tendo cada uma delas uma chave primária. São depois adicionadas chaves externas para relacionar tabelas que façam referência a essas chaves primárias. Estes pares de chave externa/chave primária formam a base das relações de tabela e consultas multitabela. Por conseguinte, é importante que estas referências de chave externa/chave primária permanecem sincronizadas. A integridade referencial ajuda a assegurar que as referências permanecem sincronizadas, estando dependente de relações de tabela.
Parte Superior da Página
Noções sobre integridade referencial
Quando estrutura uma base de dados, divide as informações em muitas tabelas baseadas em assunto para minimizar a redundância de dados. Deverá depois fornecer ao Office Access 2007 os meios para reunir novamente os dados colocando campos comuns nas tabelas relacionadas. Por exemplo, para representar uma relação um-para-muitos, deverá adicionar a chave primária da tabela "um" e adicioná-la como campo adicional à tabela"muitos". Para reunir os dados, o Access utiliza o valor na tabela "muitos" e pesquisa o valor correspondente na tabela "um". Desta forma, os valores na tabela "muitos" fazem referência aos valores correspondentes na tabela "um".
Suponha que tem uma relação um-para-muitos entre Transitários e Encomendas e pretende eliminar um Transitário. Se o transitário que pretende eliminar tiver encomendas na tabela Encomendas, essas encomendas ficarão "órfãs" quando eliminar o registo de Transitário. As encomendas irão ainda conter um código de transitário, mas o código deixará de ser válido porque o registo ao qual faz referência já não existe.
O objectivo da integridade referencial consiste em impedir órfãos e manter as referências sincronizadas para que esta situação hipotética nunca ocorra.
Para impor integridade referencial, deverá activá-la para uma relação de tabela (consulte Impor integridade referencial para obter instruções passo a passo). Uma vez imposta, o Access rejeita qualquer operação que possa violar a integridade referencial dessa relação de tabela. Tal significa que o Access irá rejeitar actualizações que alterem o destino de uma referência, ou eliminações que removam o destino de uma referência. Contudo, é possível que tenha um motivo perfeitamente válido para alterar a chave primária de um transitário que tenha encomendas na tabela Encomendas. Nestes casos, aquilo que é necessário é que o Access actualize automaticamente todas as linhas afectadas como parte de uma única operação. Dessa forma, o Access assegura que a actualização é concluída na totalidade para que a base de dados não fique num estado inconsistente, com algumas linhas actualizadas e outras não. Por este motivo, o Access suporta a opção Propagar Actualização dos Campos Relacionados. Quando o utilizar impõe integridade referencial, escolhe a opção Propagar Actualização dos Campos Relacionados e actualiza depois uma chave primária, o Access actualiza automaticamente todos os campos que fazem referência à chave primária.
Também é possível que tenha um motivo válido para eliminar uma linha e todos os registos relacionados (por exemplo, um registo de Transitário e todas as encomendas relacionadas desse transitário). Por este motivo, o Access suporta a opção Propagar Eliminação dos Registos Relacionados. Quando o utilizador impõe integridade referencial, escolhe a opção Propagar Eliminação dos Registos Relacionados e elimina depois um registo no lado de chave primária da relação, o Access elimina automaticamente todos os registos que fazem referência à chave primária.
Parte Superior da Página
Ver relações de tabela
Para ver as relações de tabela, clique em Relações no separador Ferramentas da Base de Dados. A janela Relações é aberta, apresentando eventuais relações existentes. Se ainda não tiver sido definida nenhuma relação de tabela e o utilizador estiver a abrir a janela Relações pela primeira vez, o Access irá perguntar se pretende adicionar uma tabela ou consulta à janela.
Abrir a janela Relações
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

- Se a base de dados contiver relações, será apresentada a janela Relações. Se a base de dados não contiver relações e a janela Relações estiver a ser aberta pela primeira vez, será apresentada a caixa de diálogo Mostrar Tabela. Clique em Fechar para fechar a caixa de diálogo.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
Tal apresenta todas as relações definidas na base de dados. 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 está seleccionada) e respectivas relações não serão apresentadas, a menos que a caixa de verificação Mostrar Objectos Ocultos esteja seleccionada na caixa de diálogo Opções de Navegação.
Para mais informações sobre a opção Mostrar Objectos Ocultos, consulte o artigo Guia para o Painel de Navegação.


Chave primária

Linha que representa a relação

Chave externa
Uma relação de tabela é representada por uma linha de relação desenhada entre tabelas na janela Relações. Uma relação que não imponha integridade referencial aparece como uma linha fina entre os campos comuns que suportam a relação. Quando selecciona a relação clicando na respectiva linha, a linha engrossa para indicar que está seleccionada. Se impuser integridade referencial para esta relação, a linha irá aparecer mais espessa em cada extremidade. Além disso, o número 1 irá aparecer sobre a parte espessa da linha num dos lados da relação, sendo que o símbolo de infinito (∞) irá aparecer sobre a parte espessa da linha no outro lado.
Quando a janela Relações está activa, pode seleccionar a partir dos comandos seguintes existentes no Friso, parte da Interface de utilizador do Microsoft Office Fluent:
No separador Estrutura, no grupo Ferramentas:
- Editar Relações Abre a caixa de diálogo Editar Relações. Quando uma linha de relação é seleccionada, é possível clicar em Editar Relações para alterar a relação de tabela. Também é possível fazer duplo clique na linha de relação.
- Limpar Esquema Remove todas as tabelas e relações apresentadas na janela Relações. Tenha em atenção que este comando apenas oculta as tabelas e relações, não as eliminando.
- Relatório de Relações Cria um relatório que apresenta as tabelas e relações na base de dados. O relatório apresenta apenas as tabelas e relações que não estejam ocultadas na janela Relações.
No separador Estrutura, no grupo Relações:
Parte Superior da Página
Criar uma relação de tabela
É possível criar uma relação de tabela utilizando a janela Relações ou arrastando um campo para uma folha de dados 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. Contudo, esses campos 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 poderá ser um campo Número se a propriedade FieldSize 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 FieldSize 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 FieldSize.
Criar uma relação de tabela utilizando a janela Relações
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

- Se ainda não tiver definido relações, a caixa de diálogo Mostrar Tabela será apresentada automaticamente. Se tal não acontecer, no separador Estrutura, no grupo Relações, clique em Mostrar Tabela.
A caixa de diálogo Mostrar Tabela apresenta todas as tabelas e consultas na base de dados. Para ver a penas tabelas, clique em Tabelas. Para ver apenas consultas, clique em Consultas. Para ver tanto tabelas como consultas, clique em Ambos.
- Seleccione uma ou mais tabelas ou consultas e clique em Adicionar. Quando acabar de adicionar tabelas e consultas à janela Relações, clique em Fechar.
- 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.
- Verifique se os nomes de campo apresentados são os campos comuns da relação. Se um nome de campo estiver incorrecto, clique no nome de campo e seleccione um novo campo a partir da lista.
Para impor integridade referencial para esta relação, seleccione a caixa de verificação Impor Integridade Referencial. Para mais informações sobre integridade referencial, consulte as secções Noções sobre integridade referencial e Impor integridade referencial.
- Clique em Criar.
A linha de relação é desenhada entre as duas tabelas. Se tiver seleccionado a caixa de verificação Impor Integridade Referencial, a linha irá aparecer mais espessa em cada extremidade. Além disso, e mais uma vez apenas se tiver seleccionado a caixa de verificação Impor Integridade Referencial, o número 1 será apresentado acima da parte espessa da linha num dos lados da relação, e o símbolo de infinito (∞) irá aparecer acima da parte espessa da linha no outro lado.

Notas
- Para criar uma relação um-para-um Ambos os campos comuns (normalmente os campos de chave primária e de chave externa) têm de ter um índice exclusivo. Isto significa que a propriedade Indexado desses campos deverá ser definida como Sim (Duplicação Não Autorizada). Se ambos os campos tiverem um índice exclusivo, o Access irá criar uma relação um-para-um.
- Para criar uma relação um-para-muitos O campo no lado "um" (normalmente a chave primária) da relação terá de ter um índice exclusivo. Tal significa que a propriedade Indexado deste campo deverá ser definida como Sim (Duplicação Não Autorizada). O campo no lado "muitos" não deverá ter um índice exclusivo. Poderá ter um índice, mas terá de permitir duplicados. Tal significa que a propriedade Indexado deste campo deverá ser definida como Não ou Sim (Duplicação Autorizada). Quando um campo tem um índice exclusivo e o outro não, o Access cria uma relação um-para-muitos.
Criar uma relação de tabela utilizando o painel Lista de Campos
No Office Access 2007, é possível adicionar um campo a uma tabela existente aberta na vista de 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. Quando arrasta um campo a partir de uma "outra" tabela (não relacionada) e conclui depois 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 integridade referencial por predefinição. Para impor integridade referencial, é necessário editar a relação. Para mais informações, consulte a secção Alterar uma relação de tabela.
Abrir uma tabela na vista de folha de dados
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No Painel de Navegação, clique com o botão direito do rato na tabela à qual pretende adicionar o campo e criar a relação e clique em Vista de Folha de Dados no menu de atalho.
Abrir o 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 de folha de dados, o Access apresenta campos numa das duas categorias do 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 actualmente 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, visualiza 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
- No separador Folha de Dados, no grupo Campos e Colunas, clique em Adicionar Campos Existentes.

O painel Lista de Campos é apresentado.
- 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.
- Arraste o campo pretendido a partir do painel Lista de Campos para a tabela aberta na Vista de folha de dados.
- Quando a linha de inserção for apresentada, largue o campo na posição pretendida.
O Assistente de Pesquisas é iniciado.
- Siga as instruções para concluir o Assistente de Pesquisas.
O campo é apresentado na tabela na vista de folha de dados.
Quando arrasta um campo a partir de uma "outra" tabela (não relacionada) e conclui 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 integridade referencial por predefinição. Para impor integridade referencial, é necessário editar a relação. Para mais informações, consulte a secção Alterar uma relação de tabela.
Parte Superior da Página
Eliminar uma relação de tabela
Para remover uma relação de tabela, terá de eliminar a linha de relação na janela Relações. Posicione cuidadosamente o cursor para que aponte para a linha de relação e clique na linha para a seleccionar. A linha de relação aparece mais espessa quando está seleccionada. Com a linha de relação seleccionada, prima a tecla DELETE. Tenha em atenção que, quando remove uma relação, está também a remover o suporte de integridade referencial para essa relação, caso esteja activado. Por conseguinte, o Access deixará de impedir automaticamente a criação de registos órfãos no lado "muitos" de uma relação.
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

É apresentada a janela Relações.
Se ainda não tiver definido nenhuma relação e esta for a primeira vez que está a abrir a janela Relações, será apresentada a caixa de diálogo Mostrar Tabela. Se esta caixa de diálogo for apresentada, clique em Fechar.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
São apresentadas todas as tabelas com relações, mostrando linhas de relação.
- Clique na linha de relação da relação que pretende eliminar. A linha de relação aparece mais espessa quando está seleccionada.
- Prima a tecla DELETE.
- ou -
Clique com o botão direito do rato e clique em Eliminar.
- É possível que o Access apresente a mensagem Tem a certeza de que pretende eliminar permanentemente a relação seleccionada da base de dados?. Se esta mensagem de confirmação aparecer, 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 objecto de base de dados aberto, tal como um formulário), não será possível eliminar a relação. Terá primeiro de fechar todos os objectos eventualmente abertos que utilizem essas tabelas antes de conseguir remover a relação.
Parte Superior da Página
Alterar uma relação de tabela
Para alterar uma relação de tabela é necessário seleccioná-la na janela Relações e depois editá-la. Posicione cuidadosamente o cursor para que aponte para a linha de relação e clique depois na linha para a seleccionar. A linha de relação aparece mais espessa quando está seleccionada. Com a linha de relação seleccionada, faça duplo clique na mesma ou clique em Editar Relações no grupo Ferramentas no separador Estrutura. É apresentada a caixa de diálogo Editar Relações.
Efectuar as alterações na caixa de diálogo Editar Relações
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

É apresentada a janela Relações.
Se ainda não tiver definido nenhuma relação e esta for a primeira vez que está a abrir a janela Relações, será apresentada a caixa de diálogo Mostrar Tabela. Se esta caixa de diálogo for apresentada, clique em Fechar.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
São apresentadas todas as tabelas com relações, mostrando 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 está seleccionada) e respectivas relações não serão apresentadas, a menos que Mostrar Objectos Ocultos esteja seleccionado na caixa de diálogo Opções de Navegação.
Para mais informações sobre a opção Mostrar Objectos Ocultos, consulte o artigo Guia para o Painel de Navegação.
- Clique na linha de relação da relação que pretende alterar. A linha de relação aparece mais espessa quando está seleccionada.
- Faça duplo clique na linha de relação.
- ou -
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Todas as Relações.
É apresentada a caixa de diálogo Editar Relações.

- Efectue as alterações pretendidas e 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 associação, ou impor integridade referencial e escolher uma opção de propagação. Para mais informações sobre o tipo de associação e como o definir, consulte a secção Definir o tipo de associação. Para mais informações sobre como impor integridade referencial e escolher uma opção de propagação, consulte a secção Impor integridade referencial.
Definir o tipo de associação
Quando define uma relação de tabela, os factos acerca da relação informam a estrutura das consultas. Por exemplo, se definir uma relação entre duas tabelas e criar depois uma consulta que utilize essas tabelas, o Access irá seleccionar automaticamente os campos correspondentes predefinidos com base nos campos especificados na relação. Poderá substituir estes valores predefinidos iniciais na consulta, mas os valores fornecidos pela relação serão muitas vezes os correctos. Dado que fazer corresponder e associar dados a partir de mais do que uma tabela é algo que se faz com frequência em todas as bases de dados excepto 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 do que uma tabela fazendo corresponder os valores em campos comuns. A operação que efectua a correspondência e combinação denomina-se associação. Por exemplo, suponha que pretende apresentar encomendas de clientes. Deverá criar uma consulta que associe a tabela Clientes e a tabela Encomendas no campo Cód. do Cliente. O resultado da consulta irá conter informações de cliente e informações de encomenda 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 quais os registos a incluir num resultado de consulta. Por exemplo, considere novamente uma consulta que associe a tabela Clientes e a tabela Encomendas nos campos comuns que representam o Código do Cliente. Utilizando o tipo de associação predefinido (denominado associação interna), a consulta irá devolver apenas as linhas de Cliente e as linhas de Encomenda 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 efectuado encomendas. Para o conseguir 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 a partir da tabela do lado esquerdo da relação e apenas aquelas que têm correspondência a partir da 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á considerar 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
- Na caixa de diálogo Editar Relações, clique em Tipo de Associação.
A caixa de diálogo Propriedades da Associação é apresentada.
- Clique na opção pretendida e 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 incluídas para cada tabela.
| Opção |
Associação relacional |
Tabela esquerda |
Tabela direita |
| 1. Incluir apenas linhas em que os campos associados de ambas as tabelas sejam 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 sejam 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 sejam 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.
Efectuar alterações na caixa de diálogo Propriedades da Associação
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

É apresentada a janela Relações.
Se ainda não tiver definido nenhuma relação e esta for a primeira vez que está a abrir a janela Relações, será apresentada a caixa de diálogo Mostrar Tabela. Se esta caixa de diálogo for apresentada, clique em Fechar.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
São apresentadas todas as tabelas com relações, mostrando 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 está seleccionada) e respectivas relações não serão apresentadas, a menos que Mostrar Objectos Ocultos esteja seleccionado na caixa de diálogo Opções de Navegação.
Para mais informações sobre a opção Mostrar Objectos Ocultos, consulte o artigo Guia para o Painel de Navegação.
- Clique na linha de relação da relação que pretende alterar. A linha de relação aparece mais espessa quando está seleccionada.
- Faça duplo clique na linha de relação.
- ou -
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Todas as Relações.
É apresentada a caixa de diálogo Editar Relações.
- Clique em Tipo de Associação.
- Na caixa de diálogo Propriedades da Associação, clique na opção pretendida e clique em OK.

- Efectue eventuais alterações adicionais à relação e clique em OK.
Parte Superior da Página
Impor integridade referencial
O objectivo da integridade referencial consiste em impedir registos órfãos e manter as referências sincronizadas, para que não existam registos a fazer referência a outros registos que já não existam. É possível impor integridade referencial activando-a para uma relação de tabela. Uma vez imposta, o Access rejeita qualquer operação que viole a integridade referencial dessa relação de tabela. O Access rejeita actualizações que alterem o destino de uma referência, bem como eliminações que removam o destino de uma referência. Para que o Access propague actualizações e eliminações referenciais, para que todas as linhas relacionadas sejam alteradas em conformidade, consulte a secção Definir as opções de propagação.
Activar ou desactivar a integridade referencial
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

É apresentada a janela Relações.
Se ainda não tiver definido nenhuma relação e esta for a primeira vez que está a abrir a janela Relações, será apresentada a caixa de diálogo Mostrar Tabela. Se esta caixa de diálogo for apresentada, clique em Fechar.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
São apresentadas todas as tabelas com relações, mostrando 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 está seleccionada) e respectivas relações não serão apresentadas, a menos que Mostrar Objectos Ocultos esteja seleccionado na caixa de diálogo Opções de Navegação.
Para mais informações sobre a opção Mostrar Objectos Ocultos, consulte o artigo Guia para o Painel de Navegação.
- Clique na linha de relação da relação que pretende alterar. A linha de relação aparece mais espessa quando está seleccionada.
- Faça duplo clique na linha de relação.
- ou -
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Todas as Relações.
É apresentada a caixa de diálogo Editar Relações.
- Seleccione a caixa de verificação Impor Integridade Referencial.
- Efectue eventuais alterações adicionais à relação e clique em OK.
Depois de ter imposto 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 principal; tal cria registos órfãos.
- Não é possível eliminar um registo de uma tabela principal se existirem registos correspondentes numa tabela relacionada. Por exemplo, não é possível eliminar um registo de empregado de uma tabela Empregados se existirem encomendas atribuídas a esse empregado na tabela Encomendas. Contudo, é possível optar por eliminar um registo principal e todos os registos relacionados numa única operação seleccionando a caixa de verificação Propagar Eliminação dos Registos Relacionados.
- Não é possível alterar um valor de chave primária na tabela principal se tal 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 de Encomenda. Contudo, é possível optar por actualizar um registo principal e todos os registos relacionados numa única operação seleccionando a caixa de verificação Propagar Actualização dos Campos Relacionados.
Notas
Se tiver dificuldades em activar a integridade referencial, tenha em atenção as seguintes condições necessárias para impor integridade referencial:
- O campo comum da tabela principal 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 excepção é que um campo Numeração Automática pode estar relacionado com um campo Número que tenha uma definição de propriedade FieldSize de Número Inteiro Longo.
- Ambas as tabelas têm de existir na mesma base de dados do Access. A integridade referencial não pode ser imposta em tabelas ligadas. Contudo, se as tabelas de origem estiverem em formato do Access, poderá abrir a base de dados na qual estejam armazenadas e activar 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, será necessário que o Access actualize automaticamente todas as linhas afectadas como parte de uma única operação. Dessa forma, a actualização será concluída por inteiro, de modo a que a base de dados não fique num estado inconsistente (com algumas linhas actualizadas e outras não). O Access ajuda a evitar este problema suportando a opção Propagar Actualização dos Campos Relacionados. Quando impõe integridade referencial, escolhe a opção Propagar Actualização dos Campos Relacionados e actualiza depois uma chave primária, o Access actualiza automaticamente todos os campos que fazem referência à chave primária.
Também é possível que seja necessário eliminar uma linha e todos os registos relacionados; por exemplo, um registo de transitário e todas as encomendas relacionadas desse transitário. Por este motivo, o Access suporta a opção Propagar Eliminação dos Registos Relacionados. Quando impõe integridade referencial e escolhe a opção Propagar Eliminação dos Registos Relacionados, o Access elimina automaticamente todos os registos que fazem referência à chave primária quando o registo que contém a chave primária é eliminado.
Activar ou desactivar a propagação de actualizações e/ou eliminações
- Clique no Botão do Microsoft Office
e, em seguida, clique em Abrir.
- Na caixa de diálogo Abrir, seleccione e abra a base de dados.
- No separador Ferramentas da Base de Dados, no grupo Mostrar/Ocultar, clique em Relações.

É apresentada a janela Relações.
Se ainda não tiver definido nenhuma relação e esta for a primeira vez que está a abrir a janela Relações, será apresentada a caixa de diálogo Mostrar Tabela. Se esta caixa de diálogo for apresentada, clique em Fechar.
- No separador Estrutura, no grupo Relações, clique em Todas as Relações.
São apresentadas todas as tabelas com relações, mostrando 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 está seleccionada) e respectivas relações não serão apresentadas, a menos que Mostrar Objectos Ocultos esteja seleccionado na caixa de diálogo Opções de Navegação.
Para mais informações sobre a opção Mostrar Objectos Ocultos, consulte Guia para o Painel de Navegação.
- Clique na linha de relação da relação que pretende alterar. A linha de relação aparece mais espessa quando está seleccionada.
- Faça duplo clique na linha de relação.
- ou -
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Todas as Relações.
É apresentada a caixa de diálogo Editar Relações.
- Seleccione a caixa de verificação Impor Integridade Referencial.
- Seleccione a caixa de verificação Propagar Actualização dos Campos Relacionados ou a caixa de verificação Propagar Eliminação dos Registos Relacionados, ou ambas.
- Efectue eventuais alterações adicionais à relação e clique em OK.
Nota Se a chave primária for um campo Numeração Automática, o facto de seleccionar a caixa de verificação Propagar Actualização dos Campos Relacionados não tem qualquer efeito, pois não é possível alterar o valor de um campo Numeração Automática.
Parte Superior da Página