Às vezes, o processo de criação e uso de consultas no Access é uma simples questão de selecionar campos de uma tabela, talvez aplicando-se alguns critérios e exibindo-se os resultados. Mas e se, como ocorre mais frequentemente, os dados necessários forem distribuídos em mais de uma tabela? Felizmente, você pode criar uma consulta que combina informações de várias fontes. Este tópico explora alguns cenários onde você extrai dados de mais de uma tabela e demonstra como fazer isso.
O que você deseja fazer?
Usar dados de uma tabela relacionada para melhorar as informações da sua consulta
Pode haver casos em que uma consulta com base em uma tabela fornece as informações necessárias, mas extrair dados de outra tabela ajudaria a tornar os resultados da consulta ainda mais claros e mais úteis. Por exemplo, suponha que você tenha uma lista de IDs de funcionário que aparecem nos resultados da consulta. Você percebe que seria mais útil exibir o nome do funcionário nos resultados, mas os nomes dos funcionários estão em uma tabela diferente. Para que os nomes dos funcionários apareçam nos resultados da consulta, você precisa incluir ambas as tabelas na consulta.
Use o Assistente de consulta para criar uma consulta a partir de uma tabela primária e uma tabela relacionada
-
Verifique se as tabelas têm um relação definido no janela Relações.
Como?
-
Na guia Ferramentas de Banco de dados, no grupo Mostrar/Ocultar, clique em Relações.
-
Na guia Design, no grupo Relações, clique em Todas as Relações.
-
Identifique as tabelas que devem ter uma relação definida.
-
Se as tabelas estiverem visíveis na janela Relações, verifique se uma relação já foi definida.
Uma relação é exibida como uma linha que conecta as duas tabelas em um campo em comum. Clique duas vezes em uma linha de relação para ver quais campos nas tabelas estão conectados pela relação.
-
Se as tabelas não estiverem visíveis na janela Relações, você deve adicioná-las.
Na guia Design, no grupo Mostrar/Ocultar, clique em Nomes de tabela.
Clique duas vezes em cada uma das tabelas que deseja exibir e, em seguida, clique em Fechar.
-
-
Se você não encontrar uma relação entre duas tabelas, crie uma arrastando um campo de uma das tabelas a um campo da tabela. Os campos em que você cria a relação entre as tabelas devem ter tipos de dados idênticos.
Observação: Você pode criar uma relação entre um campo do tipo de dados Numeração Automática e um campo do tipo de dados Número, se esse campo tiver um tamanho de campo de inteiro longo. Isso normalmente será o caso quando você estiver criando um relação um-para-muitos.
A caixa de diálogo Editar Relações é exibida.
-
Clique em Criar para criar a relação.
Para saber mais sobre as opções que quando você tem ao criar uma relação, confira o artigo Criar, editar ou excluir uma relação.
-
Feche a janela Relações.
-
-
Na guia Criar, no grupo Consultas, clique em Assistente de Consulta.
-
Na caixa de diálogo Nova Consulta, clique em Assistente de Consulta Simples e clique em OK.
-
Na caixa de combinação Tabelas/Consultas, clique na tabela que contém as informações básicas que você deseja incluir em sua consulta.
-
Na lista Campos Disponíveis, clique no primeiro campo que você deseja usar na consulta e, em seguida, clique no botão de seta única para a direita para mover o campo para a lista Campos Selecionados. Faça o mesmo com cada campo adicional da tabela que você deseja incluir na consulta. Eles podem ser campos que você deseja ver retornar nos resultados da consulta ou campos que deseja usar para limitar as linhas na saída por meio da aplicação de critérios.
-
Na combinação caixa Tabelas/Consultas, clique na tabela que contém os dados relacionados que você deseja usar para aprimorar os resultados da consulta.
-
Adicione os campos que você deseja usar para aprimorar os resultados da consulta à lista Campos selecionados e, em seguida, clique em Avançar.
-
Em Você deseja uma consulta de detalhe ou resumo?, clique em Detalhes ou Resumo.
Se não quiser que sua consulta realize funções de agregação (Soma, Média, Mín, Máx, Contagem, DesvPad ou Var), escolha uma consulta de detalhes. Se você quiser que sua consulta execute uma função de agregação, escolha uma consulta de resumo. Depois de fazer sua escolha, clique em Avançar.
-
Clique em Terminar para exibir os resultados.
Um exemplo que usa o dados de exemplo Northwind
No exemplo a seguir, você usa o Assistente de consulta para criar uma consulta que exibe uma lista de pedidos, a taxa envio para cada pedido e o nome do funcionário que cuidou de cada pedido.
Observação: Este exemplo envolve a modificação do banco de dados de exemplo Northwind. Faça uma cópia de backup do banco de dados de exemplo Northwind e então siga este exemplo usando a cópia de backup.
Use o Assistente de consulta para criar a consulta
-
Abra o banco de dados de exemplo Northwind. Feche o formulário de logon.
-
Na guia Criar, no grupo Consultas, clique em Assistente de Consulta.
-
Na caixa de diálogo Nova Consulta, clique em Assistente de Consulta Simples e clique em OK.
-
Na caixa de combinação Tabelas/Consultas, clique em Tabela: Pedidos.
-
Na lista Campos disponíveis, clique duas vezes em IDPedido para mover esse campo para a lista Campos Selecionados. Clique duas vezes em Taxa de Envio para mover esse campo para a lista Campos selecionados.
-
Na caixa de combinação Tabelas/Consultas, clique em Tabela: Funcionários.
-
Na lista Campos Disponíveis, clique duas vezes em Nome para mover esse campo para a lista Campos Selecionados. Clique duas vezes em Sobrenome para mover esse campo para a lista Campos Selecionados. Clique em Avançar.
-
Como você está criando uma lista de todos os pedidos, deseja usar uma consulta de detalhes. Se você estiver somando a taxa de envio por funcionário ou realizando alguma outra função de agregação, use uma consulta de resumo. Clique em Detalhes (mostra todos os campos de cada registro) e, em seguida, clique em Avançar.
-
Clique em Terminar para exibir os resultados.
A consulta retorna uma lista de pedidos, cada um com sua taxa de envio e o nome e sobrenome do funcionário que cuidou do pedido.
Conectar os dados em duas tabelas usando suas relações com uma terceira tabela
Muitas vezes, os dados em duas tabelas estão relacionados uns aos outros por meio de uma terceira tabela. Geralmente, é isso que acontece porque os dados entre as duas primeiras tabelas estão relacionados em um relação muitos para muitos. Muitas vezes, é uma prática recomendada de design de banco de dados dividir uma relação muitos para muitos entre duas tabelas em duas relações um para muitos envolvendo três tabelas. Faça isso criando uma terceira tabela chamada de tabela de junção ou de tabela de relação, que tem um chave primária e um chave estrangeira para cada uma das tabelas. Uma relação de um para muitos é criada, em seguida, entre cada chave estrangeira na tabela de junção e a chave primária correspondente de uma das outras tabelas. Nesses casos, você precisa incluir todas as três tabelas em sua consulta, mesmo que você queira recuperar dados de apenas duas delas.
Criar uma consulta de seleção usando tabelas com uma relação muitos para muitos
-
Na guia Criar, vá para o grupo Consultas e clique em Design da Consulta.
-
Clique duas vezes nas duas tabelas que contêm os dados que você deseja incluir na consulta e também na tabela de junção que as vincula e clique em Fechar.
Todas as três tabelas aparecem no espaço de trabalho de design de consulta, unidas nos campos apropriados.
-
Clique duas vezes em cada um dos campos que você deseja usar nos resultados da consulta. Cada campo, em seguida, aparece na consulta grade de design.
-
Na grade de design da consulta, use a linha Critérios para inserir critérios de campo. Para usar um critério de campo sem exibir campo nos resultados da consulta, desmarque a caixa de seleção na linha Mostrar desse campo.
-
Para classificar os resultados com base nos valores em um campo, na grade de design da consulta, clique em Crescente ou Decrescente (dependendo da forma como você deseja classificar os registros) na linha Classificação desse campo.
-
Na guia Design, no grupo Resultados, clique em Executar.
O Access exibe os resultados da consulta na modo Folha de Dados.
Um exemplo que usa o dados de exemplo Northwind
Observação: Este exemplo envolve a modificação do banco de dados de exemplo Northwind. Talvez seja necessário uma cópia de backup do banco de dados de exemplo Northwind e então seguir este exemplo usando a cópia de backup.
Suponha que você tenha uma nova oportunidade: um fornecedor no Rio de Janeiro encontrou seu site e talvez queira fazer negócio com você. No entanto, ele só opera no Rio e nos arredores de São Paulo. Eles fornecem todas as categorias de produtos alimentícios que você distribui. Esse cliente é uma empresa bem grande e deseja que você lhe garanta suficientes vendas potenciais para que valha a pena: pelo menos R$ 20,000.00 por ano em vendas (cerca de US$ 9.300,00). Você consegue fornecer a eles o mercado que eles exigem?
Os dados necessários para responder a essa pergunta estão em dois lugares: uma tabela de Clientes e uma tabela de Detalhes do pedido. Essas tabelas são vinculadas umas às outras por uma tabela Pedidos. As relações entre as tabelas já foram definidas. Na tabela Pedidos, cada pedido pode ter apenas um cliente, relacionado à tabela de Clientes no campo IDCliente. Cada registro na tabela Detalhes do pedido está relacionado a apenas um pedido na tabela Pedidos, no campo IDPedido. Dessa forma, um determinado cliente pode ter vários pedidos, e cada pedido tem diversos detalhes do pedido.
Neste exemplo, você criará uma consulta de tabela de referência cruzada que exibe o total de vendas por ano nas cidades Rio de Janeiro e São Paulo.
Crie a consulta no modo de exibição Design
-
Abra o banco de dados Northwind. Feche o formulário de logon.
-
Na guia Criar, vá para o grupo Consultas e clique em Design da Consulta.
-
Faça duplo clique em Clientes, Encomendas e, em seguida, emDetalhes da Encomenda.
Todas as três tabelas aparecem no espaço de trabalho de design de consulta.
-
Na tabela Clientes, clique duas vezes no campo Cidade para adicioná-lo à grade de design da consulta.
-
Na grade de design da consulta na coluna Cidade, na linha Critérios, digite Em ("Rio de Janeiro", "São Paulo"). Isso faz com que sejam incluídos na consulta somente os registros em que o cliente está em uma destas duas cidades.
-
Na tabela Detalhes do pedido, clique duas vezes nos campos DataDoEnvio e PreçoUnitário.
Os campos são adicionados à grade de design da consulta.
-
Na coluna DataDeEnvio na grade de design da consulta, selecione a linha Campo. Substitua [DataDeEnvio] por Ano: Formato([DataDeEnvio],"aaaa"). Isso cria um alias do campo, Ano, que lhe permite usar apenas a parte do ano do valor no campo DataDeEnvio.
-
Na coluna PreçoUnitário na grade de design da consulta, selecione a linha Campo. Substitua [PreçoUnitário] por Vendas:[DetalhesDoPedido].[PreçoUnitário]*[Quantidade]-[DetalhesDoPedido].[PreçoUnitário]*[Quantidade]*[Desconto]. Isso cria um alias de campo, Vendas, que calcula as vendas de cada registro.
-
Na guia Design, no grupo Tipo de Consulta, clique em Tabela de Referência Cruzada.
Duas novas linhas, Total e Tabela de referência cruzada, aparecem na grade de design da consulta.
-
Na coluna Cidade na grade de design da consulta, clique na linha Tabela de referência cruzada e, em seguida, clique em Título da linha.
Isso faz com que os valores de cidade apareçam como títulos da linha (ou seja, a consulta retorna uma linha para cada cidade).
-
Na coluna Ano, clique na linha Tabela de referência cruzada e, em seguida, clique em Título de coluna.
Isso faz com que os valores de ano apareçam como títulos de coluna (ou seja, a consulta retorna uma coluna para cada ano).
-
Na coluna Vendas, clique na linha Tabela de referência cruzada e, em seguida, clique em Valor.
Isso faz com os valores de vendas apareçam na interseção de linhas e coluna (ou seja, a consulta retorna um valor de vendas para cada combinação de cidade e ano).
-
Na coluna Vendas, clique na linha Totais e, em seguida, clique em Soma.
Isso faz com que a consulta some os valores nessa coluna.
Você pode deixar a linha Totais das duas outras colunas no valor padrão de Agrupar por, porque quer ver cada valor dessas colunas, não valores agregados.
-
Na guia Design, no grupo Resultados, clique em Executar.
Agora você tem uma consulta que retorna o total de vendas por ano no Rio de Janeiro e São Paulo.
Exibir todos os registros de duas tabelas semelhantes
Às vezes, convém combinar dados de duas tabelas que sejam idênticos em estrutura, mas uma delas está em outro banco de dados. Considere o seguinte cenário.
Suponha que você seja um analista trabalhando com dados de alunos. Você está adotando uma iniciativa de compartilhamento de dados entre sua escola e outra escola, para que ambas as escolas possam aprimorar os currículos. Para algumas das perguntas que você deseja explorar, seria melhor ver todos os registros de ambas as escolas juntas, em vez do registro de cada escola separadamente.
Você pode importar os dados da outra escola em novas tabelas de seu banco de dados, mas, em seguida, as alterações nos dados da outra escola não refletiriam no seu banco de dados. A melhor solução seria vincular às tabelas da outra escola e, em seguida, criar consultas que combinassem os dados quando você os executar. Você seria capaz de analisar os dados como um único conjunto, em vez de realizar duas análises e tentar interpretá-las como se fossem uma.
Para ver todos os registros de duas tabelas com estrutura idêntica, use um consulta de união.
As consultas união não podem ser exibidas no modo Design. Você as cria usando comandos SQL inseridos em uma guia de objeto do modo SQL.
Criar uma consulta união usando duas tabelas
-
Na guia Criar, vá para o grupo Consultas e clique em Design da Consulta.
-
Na guia Design, no grupo Tipo de Consulta, clique em União.
A consulta alterna do modo Design para o modo SQL. Neste ponto, a guia de objeto do modo SQL está vazia.
-
No modo SQL, digite SELECT, seguido por uma lista de campos da primeira das tabelas que você deseja incluir na consulta. Os nomes de campo devem ser colocados entre colchetes e separados por vírgulas. Quando terminar de digitar os nomes dos campos, pressione Enter. O cursor move uma linha para baixo no modo SQL.
-
Digite FROM, seguido pelo nome da primeira das tabelas que você deseja incluir na consulta. Pressione Enter.
-
Se você quiser especificar um critério para um campo da primeira tabela, digite WHERE, seguido pelo nome de campo, o operador de comparação (normalmente, um sinal de igual (=)) e o critério. Você pode adicionar critérios adicionais ao fim cláusula ONDE usando a palavra-chave E e a mesma sintaxe usada para o primeiro critério; por exemplo, ONDE [NívelDaClasse]="100" E [HorasDeCrédito]>2. Quando terminar de especificar critérios, pressione Enter.
-
Digite UNION e pressione Enter.
-
Digite SELECT, seguido por uma lista dos campos da segunda tabela que você deseja incluir na consulta. Você deve incluir os mesmos campos dessa tabela que foram incluídos da primeira tabela e na mesma ordem. Os nomes de campo devem ser colocados entre colchetes e separados por vírgulas. Quando terminar de digitar os nomes dos campos, pressione Enter.
-
Digite FROM, seguido pelo nome da segunda tabela que você deseja incluir na consulta. Pressione Enter.
-
Se quiser, adicione uma cláusula ONDE, conforme descrito na etapa 6 deste procedimento.
-
Digite um ponto e vírgula (;) para indicar o final da consulta.
-
Na guia Design, no grupo Resultados, clique em Executar.
Os resultados aparecem no modo Folha de dados.