Comparar duas tabelas e localizar apenas os dados correspondentes

Às vezes, convém analisar os registros de uma tabela do Access quando há registros correspondentes em outra tabela do Access com um ou mais campos com dados correspondentes. Por exemplo, convém examinar os registros de funcionários que processaram pelo menos um pedido para determinar quais funcionários se qualificam para um bônus. Ou talvez examinar informações de contato dos clientes que moram na mesma cidade como de um funcionário para associar funcionários a clientes para reuniões presenciais.

Quando quiser comparar duas tabelas do Access e localizar dados correspondentes:

  • Crie uma consulta que associe campos de cada tabela em que esses campos contenham informações correspondentes usando uma relação existente ou uma associação criada para fins de consulta. Esse método proporciona o desempenho ideal (a velocidade com a qual a consulta retorna resultados), mas não pode associar campos que têm tipos de dados diferentes.

  • Crie uma consulta que compare campos usando um campo como critério para os demais. Usar um campo como critério para outro campo geralmente é mais lento do que usar associações, já que elas eliminam linhas de resultados da consulta antes que as tabelas subjacentes sejam lidas. No caso dos critérios, eles são aplicados aos resultados da consulta depois que as tabelas subjacentes são lidas. No entanto, é possível usar um campo como critério de campo para comparar campos com tipos de dados diferentes, já que essa comparação não pode ser feita usando associações.

Este artigo descreve como comparar duas tabelas para identificar dados correspondentes e mostra exemplos de dados que podem ser usados com exemplos procedimentos.

O que você deseja fazer?

Comparar duas tabelas usando associações

Comparar duas tabelas usando um campo como critério

Comparar duas tabelas usando associações

Para comparar duas tabelas usando associações, crie uma consulta de seleção que inclua as duas tabelas. Se não houver uma relação existente entre as tabelas nos campos que contêm os dados correspondentes, crie uma associação nos campos que você deseja examinar para correspondências. Crie as associações que desejar, mas cada par de campos associados deve ser do mesmo tipo de dados ou de um tipo de dados compatível.

Suponha que você seja um pesquisador institucional em uma faculdade e queira ver como as alterações recentes no programa escolar do departamento de matemática afetou as notas dos alunos. Você está particularmente interessado nas notas dos alunos com as maiores notas em matemática. Você já tem uma tabela que armazena dados das maiores notas dos alunos e uma tabela que armazena dados de matrícula. Os dados das notas são armazenados na tabela Matrículas, e os dados das maiores notas dos alunos são armazenados na tabela Maiores Notas do Aluno. Para ver a alteração das notas das maiores notas de matemática desde as recentes alterações do programa escolar, analise os registros da tabela Matrícula que tenham registros correspondentes na tabela Maiores Notas do Aluno.

Preparar exemplos de dados

Neste exemplo, você cria uma consulta que determina como recentes alterações do programa escolar no departamento de matemática afetaram as notas dos alunos de matemática. Use os dois exemplos de tabela a seguir, Maiores Notas do Aluno e Matrículas. Adicione esses dois exemplos de tabela, Maiores Notas do Aluno e Matrículas, a um banco de dados.

O Microsoft Office Access 2007 oferece várias maneiras de adicionar esses exemplos de tabela a um banco de dados. É possível 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 nesta seção explicam como inserir dados manualmente em uma folha de dados em branco e também explicam como copiar os exemplos de tabela para o Excel e, em seguida, importar essas tabelas para o Access.

Maiores Notas do Aluno

Identificação do Aluno

Ano

Maior Nota

123456789

2005

MAT

223334444

2005

PORT

987654321

2005

MAT

135791357

2005

HIST

147025836

2005

BIO

707070707

2005

MAT

123456789

2006

MAT

223334444

2006

PORT

987654321

2006

PSIC

135791357

2006

ARIT

147025836

2006

BIO

707070707

2006

MAT

Matrículas

Identificação do Aluno

Ano

Período Letivo

Programa Escolar

Nº do Curso

Nota

123456789

2005

3

MAT

221

A

123456789

2005

3

PORT

101

B

123456789

2006

1

MAT

242

C

123456789

2006

1

MAT

224

C

223334444

2005

3

PORT

112

A

223334444

2005

3

MAT

120

C

223334444

2006

1

PISC

110

A

223334444

2006

1

PORT

201

B

987654321

2005

3

MAT

120

A

987654321

2005

3

PSIC

101

A

987654321

2006

1

MAT

221

B

987654321

2006

1

MAT

242

C

135791357

2005

3

HIST

102

A

135791357

2005

3

ARIT

112

A

135791357

2006

1

MAT

120

B

135791357

2006

1

MAT

141

C

147025836

2005

3

BIO

113

B

147025836

2005

3

QUÍM

113

B

147025836

2006

1

MAT

120

D

147025836

2006

1

ESTAT

114

B

707070707

2005

3

MAT

221

B

707070707

2005

3

ESTAT

114

A

707070707

2006

1

MAT

242

D

707070707

2006

1

MAT

224

C

Se você deseja usar um programa de planilhas para inserir os exemplos de dados, ignore a seção a seguir.

Inserir os exemplos de dados 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 tabela nova, 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.

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

    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

  4. Use as teclas de direção para mover para a próxima célula de cabeçalho em branco e, em seguida, digite o nome do segundo campo. Também é possível clicar duas vezes na nova célula. Repita esta etapa para cada nome de campo.

  5. Insira os dados no exemplo de tabela.

    Enquanto você digita os dados, o Access deduz um tipo de dados para cada campo. Cada campo tem um tipo de dados específico, como Número, Texto ou Data/Hora. Definir tipos de dados ajuda a garantir uma entrada precisa de dados e também ajuda a evitar erros, como usar um número de telefone em um cálculo. Para esses exemplos de tabela, permita que o Access deduza o tipo de dados, mas não se esqueça de revisar o tipo de dados que o Access deduz para cada campo.

  6. Após inserir os dados, clique em Salvar ou pressione Ctrl+S.

    A caixa de diálogo Salvar como é exibida.

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

    Use o nome de cada exemplo de tabela (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 exemplos de dados, 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 exemplos de dados contidos nas tabelas da seção anterior.

Criar as planilhas de exemplo

  1. Inicie o programa de planilhas e crie um arquivo novo e 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 o primeiro exemplo de tabela da seção anterior e cole-o na primeira planilha começando pela primeira célula. Verifique se copiou a linha de cabeçalho porque ela contém os nomes dos campos do exemplo de tabela.

  3. Usando a técnica fornecida pelo seu programa de planilha, dê à planilha o mesmo nome do exemplo de tabela. Por exemplo, ao colar os exemplos de dados Matrículas, nomeie a planilha como Matrículas.

  4. Repita as etapas 2 e 3, copiando o segundo exemplo de tabela 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 ao seu arquivo de planilha, confira a ajuda do seu programa de planilha.

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

Criar tabelas de banco de dados a partir das 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 escolha um programa de planilha na lista.

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

  2. 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.

  3. Clique em Avançar.

  4. Na próxima página do assistente, marque A Primeira Linha Contém Títulos de Coluna e clique em Avançar.

  5. Na próxima página, use 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.

  6. Na próxima página, escolha Nenhuma chave primária e clique em Avançar.

  7. Por padrão, o Access aplica o nome da planilha à sua nova tabela. Aceite o nome na caixa Importar para Tabela e, em seguida, clique em Concluir.

  8. Na página Salvar Etapas de Importação, clique em Fechar para concluir o assistente.

  9. Repita as etapas de 1 a 7 até criar uma tabela de cada planilha no arquivo de planilha.

Comparar os exemplos de tabela e localizar registros correspondentes usando associações

Agora você está pronto para comparar a tabela Matrículas e a tabela Maiores Notas do Aluno. Como você não definiu as relações entre as duas tabelas, será preciso criar associações entre os campos apropriados na 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 e Programa Escolar (tabela Matrículas) e Maiores Notas (tabela Maiores Notas do Aluno). Neste exemplo, você só está interessado nas maiores notas de matemática, portanto, também usará um critério de campo para limitar os resultados da consulta.

  1. Abra o banco de dados no qual você salvou os exemplos de tabela.

  2. Na guia Criar, clique em Design da Consulta.

  3. 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).

  4. Feche a caixa de diálogo Mostrar Tabela.

  5. Arraste o campo Identificação do Aluno da tabela Matrículas para o campo Identificação do Aluno da tabela Maiores Notas do Aluno. É exibida uma linha 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 de Associação.

  6. Analise as três opções na caixa de diálogo Propriedades de Associação. Por padrão, a opção 1 está selecionada. Em alguns casos, será preciso ajustar as propriedades de associação para incluir linhas adicionais de uma tabela. Como você está tentando localizar apenas os dados correspondentes, deixe a associação definida como a opção 1. Feche a caixa de diálogo Propriedades de Associação clicando em Cancelar.

  7. Será preciso criar mais duas 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 Programa Escolar da tabela Matrículas para o campo Maiores Notas da tabela Maiores Notas do Aluno.

  8. 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, apenas uma coluna é exibida na grade de design. A coluna que aparece tem o nome da tabela, seguida por um ponto (.) e um asterisco (*). Neste exemplo, a coluna é denominada Matrículas.*.

  9. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.

  10. Desmarque a caixa de seleção na linha Mostrar da coluna Maiores Notas na grade de design da consulta.

  11. Na linha Critérios da coluna Maiores Notas, digite MAT.

  12. 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

Comparar duas tabelas usando um campo como critério

Por vezes, pode ser necessário comparar tabelas com base nos 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, e você quer comparar esse campo com um campo em outra tabela que tenha um tipo de dados Texto. Os campos que contêm dados semelhantes, mas que ainda têm tipos de campo diferentes, podem resultar quando os números são armazenados como texto, por uma questão de design ou por outros motivos, como importar dados de outro programa. Como não é possível criar associações entre os campos que têm diferentes tipos de dados, você precisará usar um método diferente para comparar os campos. É possível comparar dois campos com diferentes tipos de dados usando um campo como critério para o outro.

Suponha que você seja um pesquisador institucional em uma faculdade e queira ver como as alterações recentes no programa escolar do departamento de matemática afetou as notas dos alunos. Você está particularmente interessado nas notas dos alunos com as maiores notas em matemática. Você já tem uma tabela Maiores Notas do Aluno e uma tabela Matrículas. Os dados das notas são armazenados na tabela Matrículas, e os dados das maiores notas dos alunos são armazenados na tabela Maiores Notas do Aluno. Para ver a alteração das notas das maiores notas de matemática, você precisa analisar registros da tabela Matrículas que tenham registros correspondentes na tabela Maiores Notas do Aluno. No entanto, um dos campos que você deseja usar para comparar as tabelas tem um tipo de dados diferente do seu equivalente.

Para comparar duas tabelas usando um campo como critério, crie uma consulta de seleção que inclua as duas tabelas. Inclua os campos que você deseja exibir e, também, o campo que corresponde ao campo que você deseja usar como critério. Em seguida, crie um critério para comparar as tabelas. Você pode criar os critérios para comparar os campos como desejar.

Para ilustrar este método, use os exemplos de tabela da seção anterior, mas altere o tipo de dados do campo Identificação do Aluno do exemplo de tabela Maiores Notas do Aluno, de Número para Texto. Como não é possível pode criar uma associação entre dois campos que têm diferentes tipos de dados, você precisará comparar os dois campos Identificação do Aluno usando um campo como critério para o outro.

Alterar o tipo de dados do campo Identificação do Aluno em Maiores Notas do Aluno

  1. Abra o banco de dados no qual você salvou os exemplos de tabela.

  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.

  3. Na coluna Tipo de Dados, altere a configuração de Identificação do Aluno de Número para Texto.

  4. Feche a tabela Maiores Notas do Aluno. Quando for solicitado a salvar as alterações, clique em Sim.

Comparar os exemplos de tabela 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 da Consulta.

  2. Na caixa de diálogo Mostrar Tabela, clique duas vezes em Matrículas e, em seguida, clique duas vezes em Maiores Notas do Aluno.

  3. Feche a caixa de diálogo Mostrar Tabela.

  4. Arraste o campo Ano da tabela Matrículas para o campo Ano da tabela Maiores Notas do Aluno e, em seguida, arraste o campo Programa Escolar 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, é possível compará-los usando associações. As associações constituem o método preferido para comparar campos que têm os mesmos tipos de dados.

  5. 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, apenas uma coluna é exibida na grade de design. A coluna que aparece tem o nome da tabela, seguida por um ponto (.) e um asterisco (*). Neste exemplo, a coluna é denominada Matrículas.*.

  6. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Identificação do Aluno para adicioná-lo à grade.

  7. Desmarque a caixa de seleção na linha Mostrar da coluna Identificação do Aluno na grade de design da consulta. Na linha Critérios da coluna Identificação do Aluno, digite Like [Matrículas].[Identificação do Aluno].

  8. Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.

  9. Desmarque a caixa de seleção na linha Mostrar da coluna Maiores Notas da grade de design. Na linha Critérios, digite MAT.

  10. 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

Compartilhar Facebook Facebook Twitter Twitter Email Email

Essas informações foram úteis?

Ótimo! Outros comentários?

Como podemos melhorá-lo?

Obrigado por seus comentários!

×