Ajuda - Busca - Membros - Calendário
Versão Completa: Como Relacionar Estas Tabelas ?
Fórum Ativo Access > Componentes do Access > Tabelas e Relacionamentos
Celso Garcia
Olá, amigos.

Bom dia!

Estou precisando da ajuda de vocês.

Estou fazendo alguns cálculos de Custos de Veículos (caminhões de transportes de cargas) e não consigo relacionar as tabelas.
Na realidade, não consigo entender como fazê-los (sou disléxico).

Já tenho estes cálculos todos em EXCEL, mas por comodidade estou tentando colocá-los em ACCESS 2007.

Bem, Tenho um Formulário "HISTÓRICO DIÁRIO DE VEÍCULOS" que deve trazer todos os dados das tabelas abaixo>

* TPORTARIA ... esta deverá fornecer os dados de saída do veículo, tais como: placas do veículo, motorista, ajudantes, datas saída e de retorno, hora saída, hora retorno, km de saída, km de retorno, cliente que está indo...
Esta tabela será digitada na portaria e deve mandar os dados para o SERVIDOR onde estarão os dados.

* TFUNCIONÁRIO ...esta deverá fornecer dados do motorista e do ajudante (podem ser vários ajudantes num único veículo, por isso coloquei como escolha de vários nomes)

* TVEÍCULO ...esta fornecerá a placa do veículo, o tipo de veículo (truck, toco, kombi, van, etc...), tipo de combustível do veículo, e a capacidade em kgs e m3s do deste veículo.

* TFORNECEDOR ... esta fornecerá os dados sobre o fornecedor (geralmente auto-peças e postos de combustível)

* TCLIENTE ... esta, os dados sobre os Clientes que o veículo deverá efetuar o serviço diário
Obs.: ...todos os dias os veículos trabalham.....
...hoje pode ir para um cliente ou até 5 clientes na mesma saída... poderá também sair mais de 1 vez num dia e deverá ser aberta uma nova saída
...amanhã, o mesmo veículo, pode ir com outro motorista e outros ajudantes para outro(s) cliente(s)......

* THISTÓRICODIÁRIOVEÍCULOS ... esta tabela (coitada) eu fiz para receber todas as informações que digitaria no Formulário "HISTÓRICO DIÁRIO DE VEÍCULOS" ...

Teoricamente, foi tudo 100% certo, era só alegria... smile.gif
1º - Automaticamente o porteiro digitaria os dados no Formulário PORTARIA e cairia na tabela TPORTARIA ...

2º - Depois seria digitados dados como : despesas com combustível, com peças, pedágio, etc.

3º - Aí, eu teria também os cálculos de receita, despesas e o resultado em R$.

À partir daí eu tirei o sorriso da cara... sad.gif ...

Nada deu certo...

Quando se digita a placa do carro, deveria aparecer os outros dados, como foto, tipo veículo, tipo combustível....
Quando se digita o fornecedor deveria aparecer também o nome do contato e telefone...

No final eu preciso também de um relatório que me dê todo o movimento de FEVEREIRO.2010 (por exemplo).

Se eu puder contar com a ajuda de você, eu agradeço, pois estou realmente com dificuldades de entender o relacionamento. Já li várias apostilas e não consegui entender ... O que eu consigo compreender, geralmente é no passo-a-passo.

Para quem não sabe, o disléxico é, em resumo, aquele que tem dificuldade de aprendizagem ou entendimento das coisas.

Obrigado,

Celso Garcia

Tomei a liberdade de colocar o Banco de Dados neste endereço

http://www.4shared.com/file/239699827/e504...os_Veculos.html

para que possam ver.
Roberto Pires
Abra o Arquivo de exemplos do Access NorthWind que você terá quase tudo o que precisa. Se mesmo assim sua dificuldade persistir, poste novamente smile.gif
Celso Garcia
Oi, Roberto.

Já abri o Northwind e mesmo assim não consegui entender...

Dizem que é fácil o relacionamento, inclusive por telefone já me explicaram, mas não deu certo..

De qualquer modo, obrigado.. smile.gif

Abs.,

Celso Garcia
Roberto Pires
Ok. Vamos adiante então.

Quando se digita a placa do carro, deveria aparecer os outros dados, como foto, tipo veículo, tipo combustível....

Em qual tela você digita a placa do veículo ?

Quando se digita o fornecedor deveria aparecer também o nome do contato e telefone...

Em qual tela você digita o fornecedor ?

Baixei seu programa. Explique detalhadamente essas etapas.
Celso Garcia
Ok.

Quando se digita a placa do carro, deveria aparecer os outros dados, como foto, tipo veículo, tipo combustível....

Em qual tela você digita a placa do veículo ?

Digito no Formulário "HISTÓRICO DIÁRIO VEÍCULOS" > no Controle Guia > na página Dados Veículo


Quando se digita o fornecedor deveria aparecer também o nome do contato e telefone...

Em qual tela você digita o fornecedor ?

No mesmo Formulário "HISTÓRICO DIÁRIO VEÍCULOS" > no Controle Guia > na página Despesas Manutenção

No mesmo Formulário "HISTÓRICO DIÁRIO VEÍCULOS" > no Controle Guia > na página Cliente eu devo buscar nos campos "Cliente" o nome do cliente desejado.

O mesmo seria para, na mesma página Cliente nos campos "Serviço" o tipo de serviço desejado.


Grato,
Roberto Pires
Celso,

Na sua Tabela "HISTÓRICO DIÁRIO VEÍCULOS" você está "duplicando" dados. Por exemplo:

Se já possui uma Tabela de Fornecedores, vincule somente o Código dele nessa tabela. Elimine todos os outros campos como Nome do Contato, Fone, etc. Com o código dele você traz todos os dados necessários
seja no seu Formulário, Relatório ou Consulta.

O mesmo vale para os dados Referente ao Veículo. Notei que já possui a Foto na Tabela Veículos e você adicionou novamente na HISTÓRICO DIÁRIO VEÍCULOS. Deixe apenas na Tabela
Veículos e mostre ela no Form HISTÓRICO DIÁRIO VEÍCULOS a partir da Veículos.

Essa regra vale para qualquer Tabela onde você irá guardar o registro "Identificador" para trazer os demais dados referente a ele.

Para mostrar dados em uma Combo Box como você pediu, basta vincular sempre o mesmo campo no caso "Placas" e mudar a Origem da Linha para selecionar qual campo deseja exibir. Asism sempre
que a Seleção for alterada ele vai mudar automaticamente para todos. Isso vale para o Fornecedor também.

Quanto a exibição da foto:
O Access 2007 trouxe essa novidade do Campo Anexo com inúmeras vantagens. Entretanto para exibição da Foto buscando o Campo de outra Tabela tive que inserir um SubForm.
Outra método que consegui foi Inserir um Controle imagem e "Buscar" a Imagem do Anexo em questão. Veja o código no evento "No Atual".

Baixe o seu Sistema no Link e veja as modificações no Form HISTÓRICO DIÁRIO VEÍCULOS. Não fiz nenhuma das correções de Campos Redundantes que mencionei. Analise e
veja que você tem muitas "melhorias" a fazer, tanto nas Tabelas como nos Forms.

Custos_Veículos

Abraços.
Celso Garcia
Oi, Roberto.

Bom dia!

Já baixei o arquivo e vou fazer como você mencionou.

É assim mesmo que eu aprendo. Passo a passo e eu mesmo fazendo... Não adianta as pessoas passarem o problema solucionado, pois aí eu não entendo.

Pelo que eu entendi, não é bicho de sete cabeças (...tem só seis... rsrs)

Por enquanto, muito obrigado e, com dúvidas ou resolvendo o problema, volto a postar para te avisar, ok?

smile.gif Grato, meu amigo, pela paciência.

smile.gif Celso Garcia smile.gif
Celso Garcia
Oi, Roberto.

Bom dia!

Vou te encher novamente.

O Fornecedor deu certo, sem problemas.

A foto e os dados do veículo também deram certo. Eu acabei puxando a foto da TVEÍCULO que foi mais simples e os outros dados aparecem normalmente.

Agora, a parte dos Clientes (página "Clientes" do Form "HISTÓRICO DIÁRIO VEÍCULOS") têm o Cliente1, o Cliente2 e o Cliente3.

Eu fiz um relacionamento para o Cliente1 na "TABELA HISTÓRICO DIÁRIO VEÍCULOS" e quando vou puxar os cliente no Form, saem todos o mesmo Cliente que eu coloquei no Cliente1.

Devo fazer uma relação entre o Cliente2 e o Cliente3 também?

Abs.,

Celso Garcia

Tive um problema nas Placas...

no Form "HISTÓRICO DIÁRIO VEÍCULOS" , fui acrescentar um novo registro e ao chamar uma placa no ComboBox, apareceu a mensagem:

Campo Atual deve coincidir com a chave de Associação '?' na tabela que serve como lado "um" da relação um-para-n.
Digite um registro na tabela do lado 'um' que contém o valor chave desejado e, em seguida, crie a entrada com o valor da chave de associação desejada na tabela "somente para um"


Tava indo tudo bem e aí me perdi.

Se puder me dar uma luz eu agradeço.

Abs.,

Celso
Roberto Pires
Não seria um relacionamento. Se você quer armazenar 3 clientes distintos para cada Histórico Diário, certamente vai precisar de 3 campos. Cliente1,Cliente2 e Cliente3. Use a mesma Tabela para as Combo em Origem da Linha e mude apenas o Campo em Fonte de Controle, que fica tudo certo.

Quanto a mensagem de Erro nas Placas, isso sim é devido a um Relacionamento que você fez e que não está correto.
Verifique Primeiro a Tabela TVeículos: Qual a Chave Primária? Código
E Qual Campo você armazena na Tabela Histórico Diário? Placas
E como você fez seu Relacionamento entre as Tabelas? Vinculou o Campo Tipo com o Campo Código da Tabela Veículos. Ficou errada essa ligação.

Se você ainda não sabe como utilizar os Relacionamentos entre Tabelas, é melhor excluir a ligação e deixar sem. Deixe sem Banco Redondo e depois estude melhor sobre Relacionamento. Reveja também essa Questão de você definir a Chave Primária em um Campo e armazenar outro para referênciar um registro (Exemplo: Placas no lugar de Código para Veículos).

smile.gif
Celso Garcia
Oi, Roberto.

Bom dia!

Só para te informar que está dando certo.

Retirei a chave das placas e coloquei um código para elas. Deu certo.

Em relação aos Clientes, também criei + dois campos (Clientes2 e Clientes3) e também está indo bem.


Obrigado

Abs.,

Celso Garcia smile.gif
Roberto Pires
Tudo certo então. Sucesso!
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2019 Invision Power Services, Inc.