Consulta com Relação entre Tabelas
Por vezes torna-se necessário obter um dynaset com um conjunto de registos constituido por dados que está contido em várias tabelas, pelo que surge a necessidade de as relacionar.
Essa relação tem por base um campo comum (por exemplo, o N.º de Cliente). A relação mais usual designa-se por relação um-para-muitos (one-to-many) e significa que, para cada registo de uma tabela, existem muitos outros registos relacionados em outra. Por exemplo, para cada Cliente (1 registo na tabela clientes) existem vários facturas ( n registos na tabelas facturas ).
Na nossa base de dados exempolo criariamos uma tabela para exemplificarmos correctamente a relação com o nome ( Serviços Facturados ):
Quando pretendemos relacionar duas tabelas, o campo da relação tem de ser do mesmo tipo (por exemplo, Texto <-> Texto).
No entanto, como o campo nº de Cliente da tabela de Clientes é do tipo Numeração Automática { AutoNumber } e o campo N.º de Cliente da tabela Serviços Facturados é do tipo Numero { Number }, para a relação ser possível é necessário alterar a sua propriedade Tamanho do campo { Field Size } para Número inteiro longo { Long integer }
Esta situação, que à partida pode parecer pouco comum, irá ser necessária em todas as bases de dados em que exista uma relação um-para-muitos: um cliente com muitas facturas, um sócio com muitos filmes alugados, um empregado com muitos registos de vencimentos,....
Criando uma nova consulta e seleccionando as duas tabelas, a relação será imediatamente reconhecida pelo Access. Para as selecionar basta selecionar uma e clicar em adicionar e de seguida selecionar a outra e tornar a clicar em adicionar.
De seguida basta selecionar os campos pretenddidos:
Fig. 1.7.10 - Relação entre duas Tabelas de uma Consulta
Quando existe mais do que uma tabela numa consulta, é aconselhável visualizar o nome da tabela à qual pertence cada campo. Essa opção é assumida, mas é controlável acedendo ao menu Ver {View} e seleccionando o comando Nomes das Tabelas { Table Names }
Para visualizar o dynaset basta clicar em vista folha de dados e obterá algo deste genero :
Fig. 2.7.10 Dynaset da Consulta da Figura
anterior