Gerir dados com consultas

Origens de dados não relacionadas com a consulta

O seu browser não suporta vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.

Por vezes é necessário criar uma consulta para obter informações de origens de dados que não têm uma relação direta (um-para-um ou um-para-muitos).

Utilizar tabelas intermédias para ligar origens de dados em consultas

Quando executa uma consulta, o Access utiliza a relação que criou entre tabelas e deduz e cria ligações entre outras origens de dados. Se a relação de que precisa para uma consulta não existir, ligue as tabelas como parte da consulta.

Suponhamos que pretende ver quantas encomendas de produtos recebeu de diferentes fornecedores. A sua tabela Fornecedores não está ligada à tabela Detalhes das Notas de Encomenda, que contém os IDs dos produtos e informações relacionadas com quantidade. No entanto, a tabela Notas de Encomenda está ligada à tabela Detalhes das Notas de Encomenda.

Múltiplas origens de dados da tabela, com e sem relações predefinidas.

Sugestão: Caso precise desta relação fora da consulta que está a criar, é melhor criar uma relação intermédia para uma utilização posterior. Para saber como, consulte o artigo Criar relações muitos-para-muitos.

Se não pretender criar a tabela intermédia na sua base de dados, utilize a tabela Notas de Encomenda como a tabela intermédia na sua consulta. Adicione a tabela Fornecedores à esquerda da tabela Notas de Encomenda e crie uma ligação.

Utilizar uma tabela para ligar indiretamente outras duas tabelas

A tabela Notas de Encomenda liga as duas tabelas diferentes, Fornecedores e Detalhes das Notas de Encomenda. Ligue as tabelas através de campos (como ID na tabela Fornecedores e ID do Fornecedor na tabela Detalhes das Notas de Encomenda) que correspondam aos seguintes critérios:

  • Os dois campos têm tipos de dados correspondentes ou compatíveis. Por exemplo, não pode ligar um campo de texto a um campo numérico.

  • Os campos identificam registos exclusivos correspondentes em cada tabela. Por exemplo, não recomendamos que ligue dois campos Apelido porque os apelidos nem sempre são exclusivos.

  • Os campos garantem resultados de registos corretos. Por exemplo, se ligar o campo ID do Fornecedor ao campo ID da Compra, poderá obter algumas correspondências se os IDs forem semelhantes. No entanto, os resultados não farão sentido porque o campo ID do Fornecedor não está relacionado com o campo ID da Compra. Uma boa opção é ligar o campo ID da tabela Fornecedor ao campo ID do Fornecedor na tabela Notas de Encomenda. Os registos devolvidos farão sentido porque ambos os campos identificam o fornecedor.

Passos

Quer tenha uma tabela intermédia na sua base de dados ou planeie apenas utilizar uma na sua consulta, siga estes passos:

  1. Adicione a tabela intermédia à sua consulta entre as duas tabelas não ligadas.

  2. Crie as ligações necessárias através da tabela intermédia.

    As ligações podem utilizar qualquer tipo de associação adequado, mas têm de estar ligadas através de campos que correspondam aos critérios descritos anteriormente neste módulo.

    Criar as ligações necessárias através da tabela intermédia
  3. Conclua a consulta.

    Siga os passos normais para criar uma consulta: adicione campos de saída, critérios e execute ou guarde a sua consulta. Para saber como fazê-lo, consulte o artigo Criar consultas básicas.

    Nota: Não tem de incluir a tabela intermédia nos seus resultados. Estas apenas precisa de fazer parte das origens de dados da consulta para que o Access possa ligar os dados.

Quer mais?

Criar consultas básicas

Criar consultas ao associar mais do que uma origem de dados

Criar consultas com associações externas

Formação do Excel

Formação do Outlook

Por vezes, tem de consultar tabelas ou outras origens de dados que não estão relacionadas e que não partilham uma associação. Tem duas opções para o fazer.

Pode utilizar uma tabela intermédia: ou seja, uma tabela que partilha associações com as origens de dados que pretende utilizar.

Em alternativa, pode adicionar uma associação.

Vamos começar pela tabela intermédia. Nesta base de dados de exemplo, os funcionários têm de introduzir um estado para cada encomenda, mas por vezes esquecem-se.

A pergunta que pretende ver respondida é: "Que encomendas não têm um estado e que funcionários se esqueceram de as introduzir?"

À primeira vista, parece que precisamos de utilizar três tabelas na consulta: Funcionários, Encomendas e Estado de Detalhes de Encomendas, uma vez que correspondem aos pontos de dados na nossa pergunta: "Que encomendas não têm um estado e que funcionários se esqueceram de as introduzir?"

Adicione as tabelas à consulta e pode ver que estas duas tabelas não estão associadas, mas não há problema, certo? Podemos adicionar uma associação.

Vamos associar os campos de ID, executar a consulta e... nada.

Por isso, agora vamos fazer o que devia ter sido feito primeiro e observar as relações entre as tabelas.

Quando o fazemos, vemos o que parece ser uma cadeia de relações: Funcionários–para–Encomendas, Encomendas–para–DetalhesEncomendas e DetalhesEncomendas–para–EstadoDetalhesEncomendas.

Encomendas e EstadoDetalhesEncomendas não estão relacionadas, mas DetalhesEncomendas está relacionada com ambas. Isso faz de DetalhesEncomendas a nossa tabela intermédia.

Por sua vez, isso leva a uma regra: Desde que as tabelas intermédias façam parte da sua origem de dados, pode consultar estas tabelas não relacionadas e obter um resultado válido.

Não tem de incluir a tabela intermédia nos resultados, mas esta tem de fazer parte da origem de dados da consulta.

Assim, adicionamos DetalhesEncomendas à consulta, mantemos os campos e executamos a consulta.

Filtramos os valores em branco... e eis a nossa resposta.

Agora, vamos adicionar uma associação a uma consulta. Para o fazer, tenha em atenção mais algumas regras.

Primeiro, as tabelas ou consultas que pretende associar precisam de ter campos com tipos de dados correspondentes ou compatíveis.

Por exemplo, os tipos de dados Número e Moeda são compatíveis, mas Número e Texto não são.

Segundo, a associação que cria encontra-se apenas na sua consulta. Não está a criar uma relação de tabela aqui.

Terceiro, os resultados devem fazer sentido. Se, por exemplo, a associação devolver dados sobre encomendas e carros da empresa, provavelmente tem de recomeçar.

Imaginemos que precisamos de saber que produtos foram encomendados por que clientes.

Adicionamos Clientes, Encomendas e DetalhesEncomendas a uma nova consulta. Agora, adicionamos a associação. Arrastamos o ID do cliente da tabela Clientes para o campo correspondente na tabela Encomendas.

Eis a linha de associação e agora temos outra regra: O Access coloca o campo que arrastou no lado esquerdo da nova associação. Se não for aquilo que pretende, selecione a linha de associação, prima a tecla Delete e recomece.

Agora que tratámos disso, podemos criar a consulta. Adicionamos NomePróprio e Apelido de Clientes e, em seguida, ID do Produto, ID da Encomenda, Quantidade e PreçoUnitário de DetalhesEncomendas.

Executamos a consulta e obtemos os dados.

Agora conhece duas técnicas que pode utilizar quando quiser consultar origens de dados não relacionadas: utilize uma tabela intermédia ou adicione uma associação e as respostas às perguntas de dados aparecem.

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.

×