MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Duplicatas entre 3 tabelas

    Compartilhe

    mduarteteixeira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 15/07/2014

    Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira em 6/12/2016, 14:35

    Boa tarde colegas,

    Não estou encontrando meios de resolver o que explicarei abaixo. Se puderem me ajudar, já estou grato!!

    São 4 tabelas, 1 para 1

    A tabela 'Credenciamento - OS' gera uma Ordem de Serviço. Uma Ordem de Serviço existe, se e somente se houver nela 1 Condutor, 1 Monitor e 1 Veículo.

    Porém tenho tido problemas com duplicatas onde 1 condutor, presente em uma OS também está presente em outra OS como Monitor.
    Vale lembrar que, uma mesma pessoa pode estar presente tanto na tabela Condutor, como na tabela Monitor.

    Por exemplo: o sujeito possui registro tanto de Condutor, como de Monitor (pois ele pode operar das duas formas) e já está com o CPF atrelado na tabela Credenciamento - OS na qualidade de Condutor. Eu gostaria de que, uma vez que ele está nesta condição, se eu tentar atrelar o CPF dele (agora na qualidade de Monitor) em outro registro, isso seja barrado.

    Existe alguma forma disto acontecer?


    Obrigado pela atenção de todos!
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: Duplicatas entre 3 tabelas

    Mensagem  Jair Martins em 6/12/2016, 18:12

    Olá, mduarteteixeira

    Se for para manter a modelagem das tabelas do jeito que está, a solução seria barrar a duplicidade via código, no form onde você faz as vinculações.
    Mas creio que o problema esteja já na modelagem. A duplicidade de dados já ocorre porque você tem o cadastro das mesmas pessoas em duas tabelas diferentes e isso é totalmente ilógico.
    Para corrigir isso, é necessário fazer uma única tabela com os dados dos Monitores e dos Condutores e criar uma outra tabela intermediária na qual você registraria quem vai como monitor e quem vai como condutor, com os seguintes campos:
    - Número da OS
    - CPF do Monitor/Condutor
    - Função nesta OS (Monitor ou Condutor).

    Deverá estabelecer uma chave primária dupla nos campos Número da OS e CPF. Dessa forma, qualquer tentativa de registrar a mesma pessoa na mesma OS será barrada pelo Access.
    E finalmente relacionar esta tabela (um-para-muitos) com as tabelas Credenciamento e com a tabela Condutores/Monitores.
    Se estiver tudo OK, os campos destinados ao Condutor e ao Monitor na tabela credenciamento poderão ser eliminados e substituídos pelos campos da tabela intermediária.

    Espero ter ajudado.

    mduarteteixeira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 15/07/2014

    Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira em 7/12/2016, 10:41

    Bom dia Jair!

    Justamente, é ilógico. Porém, com o sistema já criado, mudaram as regras aqui na empresa permitindo que condutores e monitores tenham funções trocadas. Aí me bagunçou a vida aqui!! Até então havia essa diferenciação. Mas... fazer o que kkk!

    Eu entendi sua explicação. Vou dissecar as instruções!


    Muito grato! Dou retorno!
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: Duplicatas entre 3 tabelas

    Mensagem  Jair Martins em 7/12/2016, 11:35

    Bom dia, mduarteteixeira.

    Sei como é. Já enfrentei e enfrento às vezes coisas do tipo.
    Como eu disse, se for para manter a modelagem do jeito que está, dá para barrar a duplicidade via código. Mas não aconselho porque, com essa lógica, a estrutura atual de dados pode trazer outros problemas no futuro.
    Ao remodelar sua estrutura de tabelas, leve em consideração que vai ter que tomar alguns cuidados para não comprometer a integridade dos dados já existentes, ok?

    Boa diversão aí. Se precisar, teremos prazer em ajudar.

    Abs.

    mduarteteixeira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 15/07/2014

    Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira em 7/12/2016, 11:50

    Maravilha!

    Já estamos trabalhando isso aqui. Vamos seguir pela remodelagem de tabelas realmente.


    Valeu!
    avatar
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1035
    Registrado : 07/12/2011

    Re: Duplicatas entre 3 tabelas

    Mensagem  tauron em 7/12/2016, 19:34

    Amigo Marcos, se puder postar seu bd, poderemos lhe ajudar melhor.

    mduarteteixeira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 15/07/2014

    Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira em 8/12/2016, 09:32

    Bom dia Tauron,


    Segue o banco. Excluí muitos registros para deixar o arquivo mais leve. Porém, mantive as ligações exatamente como são.



    Obrigado!
    Anexos
    BD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (507 Kb) Baixado 7 vez(es)
    avatar
    tauron
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1035
    Registrado : 07/12/2011

    Re: Duplicatas entre 3 tabelas

    Mensagem  tauron em 9/12/2016, 19:49

    Bom ao reler seu post inicial, fiquei muito confuso agora, afinal:

    1 - o mesmo nome pode ser cadastrados em outras funcoes ou nao?

    2 - Caso sim se serão OS distintas qual o fundamento de bloquear o condutor de uma os atuar como monitor em outra?



    mduarteteixeira
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 15/07/2014

    Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira em 12/12/2016, 12:31

    Bom dia Tauron,

    O mesmo nome pode estar cadastrado em duas funções: Condutor ou Monitor. Porém ele não pode estar ativo em duas OS diferentes ao mesmo tempo. Se ele exerce a função de condutor em uma OS ele não pode ser Monitor em outra OS.

    Uma OS somente é gerada quando houver a tríplice: Condutor, Monitor e Veículo.


    Fazendo uns testes, criei uma Tabela Funcionário e segui as instruções do colega Jair Martins. As relações de tabela funcionam, porém ainda não sei como realizar a emissão desta OS (faço isso gerando um relatório com os campos mesclados, na aba Credenciamento - OS).

      Data/hora atual: 22/10/2018, 22:14