À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 o outro. Usar um campo como critério para outro campo geralmente é mais lento do que usar junções, pois as junções eliminam linhas dos resultados de uma consulta antes que as tabelas subjacentes sejam lidas, enquanto os critérios são aplicados aos resultados de uma consulta após a leitura das tabelas subjacentes. No entanto, você pode usar um campo como critério de campo para comparar campos que têm tipos de dados diferentes, o que você não pode fazer usando junçõ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
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.
Access fornece várias maneiras de adicionar essas tabelas de exemplo a um banco de dados. Você pode inserir os dados manualmente, copiar cada tabela em um programa de planilha e importar as planilhas para Access ou colar os dados em 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
-
Abra um banco de dados novo ou existente.
-
Na guia Criar, no grupo Tabelas, clique em Tabela.
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.
-
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:
-
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.
-
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.
-
Após inserir os dados, clique em Salvar ou pressione Ctrl+S.
A caixa de diálogo Salvar como é exibida.
-
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
-
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.
-
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.
-
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.
-
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.
-
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
-
Em um banco de dados novo ou existente:
Na guia Dados Externos, no grupo Importar, clique em Excel.
– 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.
-
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.
-
Clique em Avançar.
-
Na próxima página do assistente, marque A Primeira Linha Contém Títulos de Coluna e clique em Avançar.
-
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.
-
Na próxima página, escolha Nenhuma chave primária e clique em Avançar.
-
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.
-
Na página Salvar Etapas de Importação, clique em Fechar para concluir o assistente.
-
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.
-
Abra o banco de dados no qual você salvou os exemplos de tabela.
-
Na guia Criar, clique em Design da Consulta.
-
Faça duplo clique na tabela que contém os registos que pretende apresentar — neste exemplo, a tabela Inscrições nas Aulas e, em seguida, faça duplo clique na tabela à qual está a compará-la — neste exemplo, na tabela Bacharelatos de Estudantes .
-
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.
-
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.
-
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.
-
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.*.
-
Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.
-
Desmarque a caixa de seleção na linha Mostrar da coluna Maiores Notas na grade de design da consulta.
-
Na linha Critérios da coluna Maiores Notas, digite MAT.
-
Na guia Design, no grupo Resultados, clique em Executar.
A consulta é executada e exibe somente as maiores notas de matemática.
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
-
Abra o banco de dados no qual você salvou os exemplos de tabela.
-
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.
-
Na coluna Tipo de Dados, altere a configuração de Identificação do Aluno de Número para Texto.
-
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.
-
Na guia Criar, no grupo Outros, clique em Design da Consulta.
-
Clique duas vezes em Registros de Classe e clique duas vezes em Majors de Estudante.
-
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.
-
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.*.
-
Na tabela Maiores Notas do Aluno, clique duas vezes no campo Identificação do Aluno para adicioná-lo à grade.
-
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].
-
Na tabela Maiores Notas do Aluno, clique duas vezes no campo Maiores Notas para adicioná-lo à grade.
-
Desmarque a caixa de seleção na linha Mostrar da coluna Maiores Notas da grade de design. Na linha Critérios, digite MAT.
-
Na guia Design, no grupo Resultados, clique em Executar.
A consulta é executada e exibe somente as maiores notas de matemática.