Por vezes, pode querer rever registos de uma tabela do Access apenas se existirem registos correspondentes noutra tabela do Access com um ou mais campos com dados correspondentes. Por exemplo, pode querer rever os registos dos funcionários que processaram, pelo menos, uma encomenda para determinar quais os funcionários elegíveis para um bónus. Em alternativa, pode querer rever as informações de contacto dos clientes que vivem na mesma cidade que um funcionário, para poder corresponder funcionários a clientes para reuniões presenciais.
Quando quiser comparar duas tabelas do Access e localizar dados correspondentes, pode:
-
Criar uma consulta que associe campos de cada tabela em que esses campos contêm informações correspondentes, utilizando uma relação existente ou uma associação criada para o propósito da consulta. Este método fornece o desempenho ideal (a velocidade com que a consulta devolve resultados), mas não é possível associar campos que têm tipos de dados diferentes.
-
Criar uma consulta que compare campos ao utilizar um campo como critério para os outros. Utilizar um campo como critério para outro campo é normalmente mais lento do que utilizar associações, porque as associações eliminam as linhas dos resultados da consulta antes das tabelas subjacentes serem lidas, enquanto os critérios são aplicados aos resultados da consulta depois de as tabelas subjacentes serem lidas. No entanto, pode utilizar um campo como critério de campo para comparar os campos que têm tipos de dados diferentes, o que não é possível através de associações.
Este artigo fala sobre como comparar duas tabelas para identificar dados correspondentes e fornece dados de exemplo que pode utilizar com procedimentos de exemplo.
O que pretende fazer?
Comparar duas tabelas através de associações
Para comparar duas tabelas através de associações, crie uma consulta selecionar que inclua ambas as tabelas. Se ainda não existir uma relação entre as tabelas nos campos que contêm os dados correspondentes, crie uma associação nos campos que pretende examinar para correspondências. Pode criar as associações que quiser, mas cada par de campos associados tem de ser do mesmo tipo de dados ou de um tipo de dados compatível.
Imagine que é um investigador numa universidade e quer ver a forma como as recentes alterações curriculares no departamento de matemática afetaram as notas dos estudantes. Está interessado especificamente nas notas dos estudantes inscritos no bacharelato de matemática. Já tem uma tabela que armazena os dados principais dos estudantes e uma tabela que armazena os dados de inscrição nas aulas. Os dados das notas estão armazenados na tabela Inscrições nas Aulas e os dados principais dos estudantes estão armazenados na tabela Bacharelatos de Estudantes. Para ver como as notas alteraram os bacharelatos de matemática desde as recentes alterações curriculares, tem de rever os registos da tabela de inscrições que tem os registos correspondentes na tabela de bacharéis.
Preparar dados de exemplo
Neste exemplo, cria uma consulta que determina a forma como as recentes alterações curriculares no departamento de matemática afetaram as notas dos estudantes de matemática. Utilize as duas tabelas de exemplo seguintes, Bacharelatos de Estudantes e Inscrições nas Aulas. Adicione estas duas tabelas de exemplo, Bacharelatos de Estudantes e Inscrições nas Aulas, a uma base de dados.
Access fornece várias formas de adicionar estas tabelas de exemplo a uma base de dados. Pode introduzir os dados manualmente, copiar cada tabela para um programa de folha de cálculo e, em seguida, importar as folhas de cálculo para Access ou pode colar os dados num editor de texto, como o Bloco de Notas, e, em seguida, importar os dados dos ficheiros de texto resultantes.
Os passos nesta secção explicam como introduzir os dados manualmente numa folha de cálculo em branco e também explicam como copiar as tabelas de exemplo para o Excel e, em seguida, importá-las para o Access.
Bacharelatos de Estudantes
ID de Estudante |
Ano |
Bacharelato |
---|---|---|
123456789 |
2005 |
MATEMÁTICA |
223334444 |
2005 |
INGLÊS |
987654321 |
2005 |
MATEMÁTICA |
135791357 |
2005 |
HISTÓRIA |
147025836 |
2005 |
BIOLOGIA |
707070707 |
2005 |
MATEMÁTICA |
123456789 |
2006 |
MATEMÁTICA |
223334444 |
2006 |
INGLÊS |
987654321 |
2006 |
PSICOLOGIA |
135791357 |
2006 |
ARITMÉTICA |
147025836 |
2006 |
BIOLOGIA |
707070707 |
2006 |
MATEMÁTICA |
Inscrições nas Aulas
ID de Estudante |
Ano |
Semestre |
Currículo |
N.º do Curso |
Nota |
---|---|---|---|---|---|
123456789 |
2005 |
3 |
MATEMÁTICA |
221 |
Excelente |
123456789 |
2005 |
3 |
INGLÊS |
101 |
Bom |
123456789 |
2006 |
1 |
MATEMÁTICA |
242 |
Suficiente |
123456789 |
2006 |
1 |
MATEMÁTICA |
224 |
Suficiente |
223334444 |
2005 |
3 |
INGLÊS |
112 |
Excelente |
223334444 |
2005 |
3 |
MATEMÁTICA |
120 |
Suficiente |
223334444 |
2006 |
1 |
CIÊNCIAS POLÍTICAS |
110 |
Excelente |
223334444 |
2006 |
1 |
INGLÊS |
201 |
Bom |
987654321 |
2005 |
3 |
MATEMÁTICA |
120 |
Excelente |
987654321 |
2005 |
3 |
PSICOLOGIA |
101 |
Excelente |
987654321 |
2006 |
1 |
MATEMÁTICA |
221 |
Bom |
987654321 |
2006 |
1 |
MATEMÁTICA |
242 |
Suficiente |
135791357 |
2005 |
3 |
HISTÓRIA |
102 |
Excelente |
135791357 |
2005 |
3 |
ARITMÉTICA |
112 |
Excelente |
135791357 |
2006 |
1 |
MATEMÁTICA |
120 |
Bom |
135791357 |
2006 |
1 |
MATEMÁTICA |
141 |
Suficiente |
147025836 |
2005 |
3 |
BIOLOGIA |
113 |
Bom |
147025836 |
2005 |
3 |
QUÍMICA |
113 |
Bom |
147025836 |
2006 |
1 |
MATEMÁTICA |
120 |
Insuficiente |
147025836 |
2006 |
1 |
ESTATÍSTICA |
114 |
Bom |
707070707 |
2005 |
3 |
MATEMÁTICA |
221 |
Bom |
707070707 |
2005 |
3 |
ESTATÍSTICA |
114 |
Excelente |
707070707 |
2006 |
1 |
MATEMÁTICA |
242 |
Insuficiente |
707070707 |
2006 |
1 |
MATEMÁTICA |
224 |
Suficiente |
Se quiser utilizar um programa de folha de cálculo para introduzir os dados de exemplo, pode ignorar a secção seguinte.
Introduzir os dados de exemplo manualmente
-
Abra uma base de dados nova ou existente.
-
No separador Criar, no grupo Tabelas, clique em Tabela.
O Access adiciona uma nova tabela em branco à sua base de dados.
Nota: Não tem de seguir este passo se abrir uma nova base de dados em branco, mas terá de segui-lo sempre que precisar de adicionar uma tabela à base de dados.
-
Faça duplo clique na primeira célula na linha de cabeçalho e, em seguida, escreva o nome do campo na tabela de exemplo.
Por predefinição, o Access indica campos em branco na linha de cabeçalho com o texto Adicionar Novo Campo, como:
-
Utilize as teclas de seta para aceder à célula de cabeçalho em branco seguinte e, em seguida, escreva o segundo nome do campo. (Também pode fazer duplo clique na nova célula.) Repita este passo para cada nome do campo.
-
Introduza os dados na tabela de exemplo.
Ao introduzir os dados, o Access infere 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 assegurar uma introdução de dados precisa e ajuda a evitar erros, como a utilização de um número de telefone num cálculo. Para estas tabelas de exemplo, deve deixar que o Access infira os tipos de dados, mas certifique-se de que revê o tipo de dados que o Access infere para cada campo.
-
Quando terminar de introduzir os dados, clique em Guardar ou prima Ctrl+S.
A caixa de diálogo Guardar Como é apresentada.
-
Na caixa Nome da Tabela, escreva o nome da tabela de exemplo e, em seguida, clique em OK.
Utilize o nome de cada tabela de exemplo (por exemplo, Bacharelatos de Estudantes) porque as consultas nas secções de procedimento deste artigo também utilizam esses nomes.
Quando terminar de introduzir os dados de exemplo, está pronto para comparar as duas tabelas.
Ignore a secção seguinte (Criar folhas de cálculo de exemplo), a menos que pretenda saber como criar uma folha de cálculo baseada nos dados de exemplo das tabelas na secção anterior.
Criar folhas de cálculo de exemplo
-
Inicie o programa de folha de cálculo e crie um novo ficheiro em branco. Se utilizar o Excel, por predefinição, será criado um novo livro em branco quando iniciar o programa.
-
Copie a primeira tabela de exemplo da secção anterior e cole-a na primeira folha de cálculo, começando na primeira célula. Certifique-se de que copia a linha de cabeçalho, uma vez que contém os nomes dos campos da tabela de exemplo.
-
Utilizando a técnica fornecida pelo programa de folha de cálculo, atribua à folha de cálculo o mesmo nome da tabela de exemplo. Por exemplo, quando cola os dados de exemplo Inscrições nas Aulas, atribua à folha de cálculo o nome Inscrições nas Aulas.
-
Repita os passos 2 e 3, copiando a segunda tabela de exemplo para uma folha de cálculo em branco e mude o nome da folha de cálculo.
Nota: Pode ter de adicionar folhas de cálculo ao ficheiro de folha de cálculo. Para obter informações sobre a adição de folhas de cálculo ao ficheiro de folha de cálculo, consulte a ajuda do programa de folha de cálculo.
-
Guarde o livro num local conveniente no seu computador ou na sua rede e avance para o próximo conjunto de passos.
Criar tabelas de base de dados a partir das folhas de cálculos:
-
Numa base de dados nova ou existente:
No separador Dados Externos, no grupo Importar, clique em Excel.
– ou –
Clique em Mais e, em seguida, selecione um programa de folha de cálculo da lista.
É apresentada a caixa de diálogo Obter Dados Externos – Folha de Cálculo do Nome do Programa.
-
Clique em Procurar, localize e abra o ficheiro de folha de cálculo que criou no passo anterior e, em seguida, clique em OK.
É iniciado o Assistente de Importação de Folhas de Cálculo.
Por predefinição, o assistente seleciona a primeira folha de cálculo no livro (Bacharelatos de Estudantes, se seguiu os passos na secção anterior) e os dados da folha de cálculo são apresentados na secção inferior da página do assistente.
-
Clique em Seguinte.
-
Na página seguinte do assistente, selecione a caixa de verificação Primeira Linha Contém os Cabeçalhos de Coluna e, em seguida, clique em Seguinte.
-
Na página seguinte, pode utilizar as caixas de texto e as listas em Opções dos Campos para alterar os nomes dos campos e os tipos de dados ou omitir campos na operação de importação. Para este exemplo, não tem de alterar nada. Clique em Seguinte.
-
Na página seguinte, selecione a opção Sem chave primária e, em seguida, clique em Seguinte.
-
Por predefinição, o Access aplica o nome da folha de cálculo à sua nova tabela. Aceite o nome na caixa Importar para Tabelae, em seguida, clique em Concluir.
-
Na página Guardar Passos de Importação, clique em Fechar para concluir o assistente.
-
Repita os passos 1 a 7 até ter criado uma tabela a partir de cada folha de cálculo no ficheiro de folha de cálculo.
Comparar as tabelas de exemplo e localizar os registos correspondentes utilizando associações
Agora está pronto para comparar a tabela Inscrições nas Aulas e a tabela Bacharelatos de Estudantes. Como ainda não definiu relações entre as duas tabelas, tem de criar associações entre os campos adequados na consulta. As tabelas têm mais de um campo em comum e terá de criar uma associação para cada par de campos comuns: ID de Estudante, Ano e Currículo (tabela Inscrições nas Aulas) e Bacharelato (tabela Bacharelatos de Estudantes). Neste exemplo, apenas está interessado nos bacharelatos de matemática, pelo que também vai utilizar um critério de campo para limitar os resultados da consulta.
-
Abra a base de dados na qual guardou as tabelas de exemplo.
-
No separador Criar, clique em Estrutura 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 ID de Estudante da tabela Inscrições nas Aulas para o campo ID de Estudante da tabela Bacharelatos de Estudantes. Aparece uma linha entre as duas tabelas na grelha de estrutura, indicando que criou uma associação. Faça duplo clique na linha para abrir a caixa de diálogo Propriedades da Associação.
-
Reveja as três opções na caixa de diálogo Propriedades da Associação. Por predefinição, a opção 1 está selecionada. Em alguns casos, tem de ajustar as propriedades de associação para incluir linhas adicionais de uma tabela. Uma vez que está a tentar encontrar apenas dados correspondentes, deixe a associação definida para a opção 1. Feche a caixa de diálogo Propriedades da Associação ao clicar em Cancelar.
-
Terá de criar duas outras associações. Crie estas associações ao arrastar o campo Ano da tabela Inscrições nas Aulas para o campo Ano da tabela Bacharelatos de Estudantes e, em seguida, ao arrastar o campo Currículo da tabela Inscrições nas Aulas para o campo Bacharelato na tabela Bacharelatos de Estudantes.
-
Na tabela Inscrições nas Aulas, faça duplo clique no asterisco (*) para adicionar todos os campos da tabela à grelha de estrutura da consulta.
Nota: Quando utiliza o asterisco para adicionar todos os campos, é apresentada apenas uma coluna na grelha de estrutura. A coluna apresentada tem o nome da tabela, seguido por um ponto final (.) e um asterisco (*). Neste exemplo, a coluna tem o nome Inscrições nas Aulas.*.
-
Na tabela Bacharelatos de Estudantes, faça duplo clique no campo Bacharelato para o adicionar à grelha.
-
Desmarque a caixa de verificação na linha Mostrar da coluna Bacharelato na grelha de estrutura da consulta.
-
Na linha Critérios da coluna Bacharelato, escreva MATEMÁTICA.
-
No separador Estrutura, no grupo Resultados, clique em Executar.
A consulta é executada e, em seguida, apresenta apenas as notas de matemática dos bacharéis de matemática.
Comparar duas tabelas ao utilizar um campo como critério
Por vezes, poderá querer comparar tabelas com base em campos que têm dados correspondentes, mas com tipos de dados diferentes. Por exemplo, um campo numa tabela pode ter um tipo de dados Número e o utilizador pode querer comparar esse campo a um campo na outra tabela que tem um tipo de dados Texto. Os campos que contêm dados semelhantes mas que têm tipos de campo diferentes podem resultar quando os números são armazenados como texto, quer por predefinição quer por outras razões, como a importação de dados de outro programa. Uma vez que não é possível criar associações entre campos com tipos de dados diferentes, terá de utilizar um método diferente para comparar os campos. Pode comparar dois campos com tipos de dados diferentes ao utilizar um campo como critério para os outros.
Imagine que é um investigador numa universidade e quer ver a forma como as recentes alterações curriculares no departamento de matemática afetaram as notas dos estudantes. Está interessado especificamente nas notas dos estudantes inscritos no bacharelato de matemática. Já tem uma tabela Bacharelatos de Estudantes e uma tabela Inscrições nas Aulas. Os dados das notas estão armazenados na tabela Inscrições nas Aulas e os dados principais dos estudantes estão armazenados na tabela Bacharelatos de Estudantes. Para ver como as notas foram alteradas para os bacharéis de matemática, tem de ver os registos da tabela de inscrições que tem os registos correspondentes na tabela de principais. No entanto, um dos campos que pretende utilizar para comparar as tabelas tem um tipo de dados diferente.
Para comparar duas tabelas ao utilizar um campo como critério, crie uma consulta selecionar que inclua ambas as tabelas. Inclua os campos que pretende apresentar, bem como o campo que corresponde ao campo que quer utilizar como critério. Em seguida, crie um critério para comparar as tabelas. Pode criar os critérios para comparar campos que quiser.
Para ilustrar este método, utilizará as tabelas de exemplo da secção anterior, mas irá alterar o tipo de dados do campo ID de Estudante da tabela de exemplo Bacharelatos de Estudantes de Número para Texto. Uma vez que não é possível criar uma associação entre dois campos com tipos de dados diferentes, terá de comparar os dois campos ID de Estudante utilizando um campo como critério para o outro.
Alterar o tipo de dados do campo ID de Estudante da tabela Bacharelatos de Estudantes
-
Abra a base de dados na qual guardou as tabelas de exemplo.
-
No Painel de Navegação, clique com o botão direito do rato na tabela Bacharelatos de Estudantes e, em seguida, clique em Vista Estrutura no menu de atalho.
A tabela Bacharelatos de Estudantes é aberta na vista Estrutura.
-
Na coluna Tipo de Dados, altere a definição de ID de Estudante de Número para Texto.
-
Feche a tabela Bacharelatos de Estudantes. Quando lhe for pedido para guardar as alterações, clique em Sim.
Comparar as tabelas de exemplo e localizar os registos correspondentes utilizando um critério de campo
O procedimento seguinte mostra como comparar os dois campos ID de Estudante utilizando o campo de Inscrições nas Aulas como critério para o campo de Bacharelatos de Estudantes. Ao utilizar a palavra-chave Como, pode comparar os campos, mesmo que tenham tipos de dados diferentes.
-
No separador Criar, no grupo Outro, clique em Estrutura da Consulta.
-
Faça duplo clique em Inscrições nas Aulas e, em seguida, faça duplo clique em Bacharelatos de Estudantes.
-
Arraste o campo Ano da tabela Inscrições nas Aulas para o campo Ano da tabela Bacharelatos de Estudantes e, em seguida, arraste o campo Currículo da tabela Inscrições nas Aulas para o campo Bacharelato da tabela Bacharelatos de Estudantes. Uma vez que estes campos têm os mesmos tipos de dados, pode compará-los utilizando associações. As associações são o método preferido para comparar campos com o mesmo tipo de dados.
-
Faça duplo clique no asterisco (*) na tabela Inscrições nas Aulas para adicionar todos os campos da tabela à grelha de estrutura da consulta.
Nota: Quando utiliza o asterisco para adicionar todos os campos, é apresentada apenas uma coluna na grelha de estrutura. A coluna apresentada tem o nome da tabela, seguido por um ponto final (.) e um asterisco (*). Neste exemplo, a coluna tem o nome Inscrições nas Aulas.*.
-
Na tabela Bacharelatos de Estudantes, faça duplo clique no campo ID de Estudante para o adicionar à grelha.
-
Desmarque a caixa de verificação na linha Mostrar da coluna ID de Estudante da grelha de estrutura. Na linha Critérios da coluna ID de Estudante, escreva Como [Inscrições nas Aulas].[ID de Estudante].
-
Na tabela Bacharelatos de Estudantes, faça duplo clique no campo Bacharelato para o adicionar à grelha.
-
Desmarque a caixa de verificação na linha Mostrar da coluna Principal da grelha de estrutura. Na linha Critérios, escreva MATEMÁTICA.
-
No separador Estrutura, no grupo Resultados, clique em Executar.
A consulta é executada e, em seguida, apresenta apenas as notas de matemática dos bacharéis de matemática.