Um fornecedor celebra Contratos com seus clientes, designando Técnicos (um ou mais) para acompanhar estes Contratos. Em um sistema comum, a metodologia de manutenção dos registros obedeceria a uma lógica muito simples:
Todos os técnicos seriam cadastrados, e sua tabela sofreria uma inclusão com a admissão de novo técnico ou exclusão, no caso de desligamento do técnico da empresa;
A cada Contrato celebrado, seria cadastrada uma relação em uma outra tabela de relacionamento, já que podemos ter um ou mais Técnicos para acompanhar cada Contrato..
No entanto, a demanda recebida foi que se mostrasse um quadro com todas as combinações (cruzamentos) possíveis, e na intersecção seria colocado algum sinal para mostrar que existe ou não aquela relação. E que relação ? Se o Técnico (na coluna da tabela) está acompanhando determinado Contrato (na linha da tabela).
Produto Esperado
Cada linha representa um Contrato, e cada coluna um Técnico.
Tabela utilizadas (com os valores)
À esquerda, está a tabela com os valores dos campos dos Contratos. À direita está a tabela com os valores dos campos dos Técnicos.
Consulta que produz os campos para o quadro pedido
Para fazer a consulta, simplesmente adicione as duas tabelas citadas, SEM FAZER RELACIONAMENTO ALGUM.
Execute a consulta, e veja o resultado:
O número de registros (24) mostra que foi feito o cruzamento perfeito entre os 6 contratos e os 4 técnicos (6 x 4 = 24).
Consulta para o quadro
O quadro será obtido pela consulta do tipo REFERÊNCIA CRUZADA.
Os passos para construí-la são:
1 - Escolha o tipo "Referência Cruzada" no assistente de consultas.
2 - Marque Consultas no quadro "Exibir", e escolha a consulta que incluiu as duas tabelas sem nenhum relacionamento entre elas.
3 - Escolha o campo NoContrato para ser o campo Linha na Referência Cruzada:
4 - Escolha o campo Nome para ser o campo das colunas na Referência Cruzada:
5 - Escolha o campo VrContrato para ser o conteúdo das intersecções de Contrato com Técnico, escolhendo como critério de exibição "Primeiro":
6 - Dê um nome à consulta, com o sufixo "RefCruz" para facilitar a identificação deste tipo particular de consulta:
Alterações adicionais
Não queremos realmente mostrar o valor do contrato. Queremos mostrar a tabela com os cruzamentos, como pedido. Por isto vamos entrar na estrutura da Consulta criada:
O Assistente de consulta acrescenta coisas que não são nosso objetivo, como o campo de "Total do VrContrato". Igualmente indesejável é a apresentação do campo VrContrato. Queremos simplesmente a grade de cruzamento sem nenhum preenchimento.
Ao invés do campo VrContrato, criamos um campo Flag fictício (o Access permite tal coisa), SEM NENHUMA REFERÊNCIA À TABELA OU CONSULTA e especificamos o tipo "Primeiro" na linha "Total".
O resultado é a grade mostrada no item "Produto Esperado" deste post.
Nenhum comentário:
Postar um comentário