Comparar duas tabelas e localizar apenas os dados correspondentes

Às vezes, convém revisar registros de uma tabela somente se houver registros correspondentes em outra tabela que contenha um ou mais campos com dados correspondentes. Por exemplo, convém revisar os registros dos funcionários que processaram pelo menos um pedido para determinar quais funcionários estão qualificados para um bônus. Talvez seja necessário analisar as informações de contato dos clientes que moram na mesma cidade de um funcionário, a fim de que você possa fazer a correspondência dos funcionários com um cliente para reuniões pessoais.

Quando precisar comparar duas tabelas e localizar dados correspondentes, você poderá:

  • Criar uma consulta que associe os campos de cada tabela na qual esses campos contenham informações correspondentes, usando um relacionamento existente ou uma associação criada para fins de consulta. Esse método oferece melhor desempenho (a velocidade em que a consulta retorna os resultados), mas você não pode associar campos que tenham tipos de dados diferentes.
  • Criar uma consulta que compare os campos usando um campo como critério para outro. O uso de um campo como critério para outro campo é geralmente mais demorado do que o uso de associações, pois estas eliminam as linhas dos resultados de uma consulta antes que as tabelas base sejam lidas, ao passo que os critérios são aplicados aos resultados de uma consulta depois que as tabelas base são lidas. Entretanto, você pode usar um campo como critério para comparar campos que possuam tipos de dados diferentes, o que não é possível fazer através das associações.

Este artigo descreve como comparar duas tabelas para identificar dados correspondentes e fornece dados de exemplo que você pode usar com procedimentos de exemplo.

Este artigo não aborda os dados duplicados e seu impacto. Para obter mais informações sobre como localizar, ocultar ou eliminar os dados duplicados, pesquise a Ajuda ou use os links da seção Consulte também.

O que você deseja fazer?


Comparar duas tabelas usando associações

Para comparar duas tabelas usando associações, crie uma consulta seleção que inclua ambas as tabelas. Se ainda não houver um relacionamento entre as tabelas nos campos que contêm os dados correspondentes, crie uma associação nos campos em que você deseja procurar as correspondências. Você pode criar quantas associações desejar, mas cada par de campos associados deve conter o mesmo tipo de dados ou um tipo de dados compatível.

Suponhamos que você seja um pesquisador institucional em uma faculdade e deseje ver como as recentes alterações feitas no currículo do departamento de matemática afetaram as notas dos alunos. Você está interessado especificamente nas notas dos alunos que demonstram excelente desempenho em matemática. Você já tem uma tabela que armazena as maiores notas do aluno e uma tabela que armazena os dados de matrícula. As notas são armazenadas na tabela Matrículas e as maiores notas são armazenadas na tabela Maiores Notas do Aluno. Para ver como as notas dos melhores alunos em matemática mudaram após as recentes alterações feitas no currículo, você precisa revisar os registros na tabela de matrículas que possuam dados correspondentes na tabela de maiores notas.

Preparar dados de exemplo

Neste exemplo, você cria uma consulta que determina como as alterações feitas no currículo de matemática afetaram as notas dos alunos. Use as duas tabelas de exemplo a seguir, Maiores Notas do Aluno e Matrículas. Adicione essas duas tabelas de exemplo a um banco de dados.

O Microsoft Office Access 2007 permite adicionar essas tabelas de exemplo a um banco de dados de várias maneiras. Você pode inserir os dados manualmente, copiar cada tabela em um programa de planilha (como o Microsoft Office Excel 2007) e, em seguida, importar as planilhas para o Office Access 2007 ou copiar os dados para um editor de texto, como o Bloco de Notas, e importar os dados dos arquivos de texto resultantes.

As etapas desta seção explicam como inserir dados manualmente em uma folha de dados em branco e como copiar as tabelas de exemplo para o Office Excel 2007 e, em seguida, importá-las para o Access 2007. Para obter mais informações sobre como criar e importar os dados de texto, consulte o artigo Importar ou vincular dados em um arquivo de texto.

Maiores Notas do Aluno
Identificação do Aluno Ano Maior Nota
123456789 2005 MAT
223334444 2005 ING
987654321 2005 MAT
135791357 2005 HIS
147025836 2005 BIO
707070707 2005 MAT
123456789 2006 MAT
223334444 2006 ING
987654321 2006 PSI
135791357 2006 ARI
147025836 2006 BIO
707070707 2006 MAT

Matrícula
Identificação do Aluno Ano Termo Currículo Nº do Curso Nota
123456789 2005 3 MAT 221 A
123456789 2005 3 ING 101 B
123456789 2006 1 MAT 242 C
123456789 2006 1 MAT 224 C
223334444 2005 3 ING 112 A
223334444 2005 3 MAT 120 C
223334444 2006 1 PSI 110 A
223334444 2006 1 ING 201 B
987654321 2005 3 MAT 120 A
987654321 2005 3 PSI 101 A
987654321 2006 1 MAT 221 B
987654321 2006 1 MAT 242 C
135791357 2005 3 HIS 102 A
135791357 2005 3 ARI 112 A
135791357 2006 1 MAT 120 B
135791357 2006 1 MAT 141 C
147025836 2005 3 BIO 113 B
147025836 2005 3 QUI 113 B
147025836 2006 1 MAT 120 D
147025836 2006 1 EST 114 B
707070707 2005 3 MAT 221 B
707070707 2005 3 EST 114 A
707070707 2006 1 MAT 242 D
707070707 2006 1 MAT 224 C

Se você deseja usar um programa de planilha para inserir os dados de exemplo, poderá ignorar a seção a seguir.

Inserir os dados de exemplo manualmente

  1. Abra um banco de dados novo ou existente.
  2. Na guia Criar, no grupo Tabelas, clique em Tabela.

Imagem da Faixa de Opções do Access

O Access adiciona uma nova tabela em branco ao seu banco de dados.

 Observação   Você não precisará executar esta etapa se abrir um novo banco de dados em branco, mas precisará executá-la sempre que adicionar uma tabela ao banco de dados.

  1. Clique duas vezes na primeira célula da linha de cabeçalho e digite o nome do campo na tabela de exemplo.

Por padrão, o Access indica os campos em branco na linha de cabeçalho com o texto Adicionar Novo Campo, como:

Um novo campo em uma folha de dados

  1. Use as teclas de direção para mover-se para a próxima célula de cabeçalho em branco e digite o segundo nome de campo. (Você também pode clicar duas vezes na nova célula.) Repita essa etapa para cada nome de campo.
  2. Insira os dados na tabela de exemplo.

Quando você inserir os dados, o Access deduzirá um tipo de dados para cada campo. Cada campo tem um tipo de dados específico, como Número, Texto ou Data/Hora. A definição dos tipos de dados ajuda a garantir a entrada de dados precisos e a evitar erros, como usar um número de telefone em um cálculo. Nessas tabelas de exemplo, deixe que o Access deduza o tipo de dados, mas não deixe de analisar o tipo de dados que o Access deduzirá para cada campo.

  1. Após a inserção dos dados, clique em Salvar ou pressione CTRL+S.

A caixa de diálogo Salvar como é exibida.

  1. Na caixa Nome da Tabela, digite o nome da tabela de exemplo e clique em OK.

Use o nome de cada tabela de exemplo (por exemplo, Maiores Notas do Aluno) porque as consultas nas seções de procedimento deste artigo também usam esses nomes.

Após a inserção dos dados de exemplo, você estará pronto para comparar as duas tabelas .

Ignore a seção a seguir (Criar as planilhas de exemplo), a menos que você deseje aprender a criar uma planilha que esteja baseada nos dados de exemplo contidos nas tabelas da seção anterior.

Criar as planilhas de exemplo

  1. Inicie o programa de planilha e crie um novo arquivo em branco. Se você usar o Excel, uma nova pasta de trabalho em branco será criada, por padrão, quando você iniciar o programa.
  2. Copie a primeira tabela de exemplo da seção anterior e cole-a na primeira planilha, começando na primeira célula. Verifique se você copiou a linha de cabeçalho, pois ele contém os nomes de campo da tabela de exemplo.
  3. Usando a técnica fornecida pelo programa de planilha, atribua à planilha o mesmo nome da tabela de exemplo. Por exemplo, quando você colar os dados de exemplo Matrículas, nomeie a planilha como Matrículas.
  4. Repita as etapas 2 e 3, copiando a segunda tabela de exemplo em uma planilha em branco e renomeando a planilha.

 Observação   Você talvez precise adicionar planilhas ao seu arquivo de planilha. Para obter informações sobre como adicionar planilhas para seu arquivo de planilha, consulte a Ajuda do seu programa de planilha.

  1. Salve a pasta de trabalho para um local conveniente no computador ou na rede e vá para o próximo conjunto de etapas.

Criar tabelas de banco de dados com base em planilhas

  1. Em um banco de dados novo ou existente:

Na guia Dados Externos, no grupo Importar, clique em Excel.

Imagem da Faixa de Opções do Access

- ou -

Clique em Mais e selecione um programa de planilha na lista.

A caixa de diálogo Planilha Obter Dados Externos - Nome do Programa é exibida.

  1. Clique em Procurar, localize e abra o arquivo de planilha que você criou nas etapas anteriores e clique em OK.

O Assistente de Importação de Planilha é iniciado.

Por padrão, o assistente seleciona a primeira planilha da pasta de trabalho (Maiores Notas do Aluno, caso você tenha executado as etapas da seção anterior) e os dados dessa planilha aparecem na seção inferior da página do assistente.

  1. Clique em Avançar.
  2. Na próxima página do assistente, marque A Primeira Linha Contém Títulos de Coluna e clique em Avançar.
  3. Na próxima página, você pode usar as caixas de texto e as listas em Opções de Campo para alterar os nomes de campo e os tipos de dados, ou omitir campos da operação de importação. Neste exemplo, você não precisará alterar nada. Clique em Avançar.
  4. Na próxima página, selecione Nenhuma chave primária e clique em Avançar.
  5. Por padrão, o Access aplica o nome da planilha à nova tabela. Aceite o nome na caixa Importar para Tabela e clique em Concluir.
  6. Na página Salvar Etapas de Importação, clique em Fechar para concluir o assistente.
  7. Repita as etapas de 1 a 7 até criar uma tabela de cada planilha no arquivo de planilha.

Comparar as tabelas de exemplo e localizar registros correspondentes usando associações

Agora você está pronto para comparar as tabelas Matrículas e Maiores Notas do Aluno. Como você não definiu os relacionamentos entre as duas tabelas, precisará criar associações entre os campos apropriados da consulta. As tabelas têm mais de um campo em comum e você precisará criar uma associação para cada par de campos comuns: Identificação do Aluno, Ano, Currículo (tabela Matrículas) e Maiores Notas (tabela Maiores Notas do Aluno). Neste exemplo, você está apenas interessado nas maiores notas de matemática, portanto, também utilizará um campo de critério para limitar os resultados da consulta.

  1. Abra o banco de dados no qual você salvou as tabelas de exemplo.
  2. Na guia Criar, no grupo Outros, clique em Design de Consulta.
  1. Na caixa de diálogo Mostrar Tabela, clique duas vezes na tabela que contém os registros a serem exibidos (neste exemplo, a tabela Matrículas) e, em seguida, clique duas vezes na tabela à qual você a está comparando (neste exemplo, a tabela Maiores Notas do Aluno).
  2. Feche a caixa de diálogo Tabela.
  3. Arraste o campo Identificação do Aluno na tabela Matrículas para o campo Identificação do Aluno da tabela Maiores Notas do Aluno. Uma linha é exibida entre as duas tabelas na grade de design, indicando que você criou uma associação. Clique duas vezes na linha para abrir a caixa de diálogo Propriedades da Associação.
  4. Analise as três opções na caixa de diálogo Propriedades da Associação. Por padrão, a opção 1 aparece selecionada. Em alguns casos, é preciso ajustar as propriedades da associação para incluir linhas extras de uma tabela. Como você está tentando localizar somente os dados correspondentes, deixe a associação definida para a opção 1. Feche a caixa de diálogo Propriedades da Associação clicando em Cancelar.
  5. Você precisará criar duas outras associações. Crie essas associações arrastando o campo Ano da tabela Matrículas para o campo Ano da tabela Maiores Notas do Aluno e, em seguida, arrastando o campo Currículo da tabela Matrículas para o campo Maiores Notas da tabela Maiores Notas do Aluno.
  6. Na tabela Matrículas, clique duas vezes no asterisco (*) para adicionar todos os campos da tabela à grade de design da consulta.

 Observação   Quando você usa o asterisco para adicionar todos os campos, aparece apenas uma coluna na grade de design. A coluna exibida tem o nome da tabela, seguido por um ponto (.) e um asterisco (*). Neste exemplo, a coluna é denominada Matrículas.*.

  1. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.
  2. Desmarque a caixa de seleção na linha Mostrar da coluna Maiores Notas na grade de design da consulta.
  3. Na linha Critérios da coluna Maiores Notas, digite MAT.
  4. Na guia Design, no grupo Resultados, clique em Executar.

A consulta é executada e exibe somente as maiores notas de matemática.

Início da página Início da página

Comparar duas tabelas usando um campo como critério

Talvez seja necessário comparar as tabelas na base dos campos que possuem dados correspondentes, mas têm diferentes tipos de dados. Por exemplo, um campo em uma tabela pode ter um tipo de dados Número que você deseje comparar a um campo em outra tabela que possua um tipo de dados Texto. Campos com dados semelhantes mas com tipos de campo diferentes podem aparecer quando os números forem armazenados como texto, por padrão ou por outros motivos, como a importação de dados de outro programa. Como você não pode criar associações entre os campos com tipos de dados diferentes, precisará usar um método diferente para comparar os campos. Você pode comparar dois campos que tenham tipos de dados diferentes usando um campo como critério para o outro.

Suponhamos que você seja um pesquisador institucional em uma faculdade e deseje ver como as recentes alterações feitas no currículo do departamento de matemática afetaram as notas dos alunos. Você está interessado especificamente nas notas dos alunos que demonstram excelente desempenho em matemática. Você já tem as tabelas Maiores Notas do Aluno e Matrículas. As notas são armazenadas na tabela Matrículas e as maiores notas são armazenadas na tabela Maiores Notas do Aluno. Para ver como as notas dos melhores alunos em matemática mudaram, você precisa examinar os registros da tabela de matrículas que possuem dados correspondentes na tabela de maiores notas. No entanto, um dos campos que você deseja usar para comparar as tabelas não possui o mesmo tipo de dados de sua contraparte.

Para comparar duas tabelas usando um campo como critério, crie uma consulta seleção que inclua ambas as tabelas. Inclua os campos que deseja exibir e o campo que deseja usar como critério. Em seguida, crie um critério para comparar as tabelas. Você pode criar quantos critérios forem necessários para comparar os campos.

Para ilustrar este método, você usará as tabelas de exemplo da seção anterior, mas alterará o tipo de dados do campo Identificação do Aluno da tabela de exemplo Maiores Notas do Aluno de Número para Texto. Como você não pode criar uma associação entre dois campos que tenham tipos de dados diferentes, terá que comparar os dois campos Identificação do Aluno usando um campo como critério para o outro.

Alterar o tipo de dados do campo Maiores Notas do Aluno

  1. Abra o banco de dados no qual você salvou as tabelas de exemplo.
  2. No Painel de Navegação, clique com o botão direito do mouse na tabela Maiores Notas do Aluno e, em seguida, clique no Modo Design no menu de atalho.

A tabela Maiores Notas do Aluno é aberta no modo Design.

  1. Na coluna Tipo de Dados, altere a configuração de Identificação do aluno de Número para Texto.
  2. Feche a tabela Maiores Notas do Aluno. Quando for solicitado a salvar as alterações, clique em Sim.

Comparar as tabelas de exemplo e localizar registros correspondentes usando um critério de campo

O procedimento a seguir mostra como comparar os dois campos Identificação do Aluno usando o campo da tabela Matrículas como critério para o campo da tabela Maiores Notas do Aluno. Usando a palavra-chave Like, você pode comparar os campos, mesmo que eles tenham tipos de dados diferentes.

  1. Na guia Criar, no grupo Outros, clique em Design de Consulta.
  1. Na caixa de diálogo Mostrar Tabela, clique duas vezes em Matrículas e, em seguida, clique duas vezes em Maiores Notas do Aluno.
  2. Feche a caixa de diálogo Mostrar Tabela.
  3. Arraste o campo Ano da tabela Matrículas para o campo Ano da tabela Maiores Notas do Aluno e, em seguida, arraste o campo Currículo da tabela Matrículas para o campo Maiores Notas da tabela Maiores Notas do Aluno.

Como esses campos têm os mesmos tipos de dados, você pode compará-los usando associações. As associações são o método preferencial para comparar campos que tenham o mesmo tipo de dados.

  1. Clique duas vezes no asterisco (*) na tabela Matrículas para adicionar todos os campos dessa tabela à grade de design de consulta.

 Observação   Quando você usa o asterisco para adicionar todos os campos, aparece apenas uma coluna na grade de design. A coluna exibida tem o nome da tabela, seguido por um ponto (.) e um asterisco (*). Neste exemplo, a coluna é denominada Matrículas.*.

  1. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Identificação do Aluno para adicioná-lo à grade.
  2. Desmarque a caixa de seleção na linha Mostrar da coluna Identificação do Aluno da grade de design. Na linha Critérios da coluna Identificação do Aluno, digite Like [Matrículas].[Identificação do Aluno].
  3. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.
  4. Desmarque a caixa de seleção na linha Mostrar de Maiores Notas da grade de design. Na linha Critérios, digite MAT.
  5. Na guia Design, no grupo Resultados, clique em Executar.

A consulta é executada e exibe somente as maiores notas de matemática.

Início da página Início da página

 
 
Aplica-se a:
Access 2007