MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

    Duplicatas entre 3 tabelas

    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira 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!
    Jair Martins
    Jair Martins
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  Jair Martins 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
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira 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!
    Jair Martins
    Jair Martins
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  Jair Martins 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
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira 7/12/2016, 11:50

    Maravilha!

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


    Valeu!
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  tauron 7/12/2016, 19:34

    Amigo Marcos, se puder postar seu bd, poderemos lhe ajudar melhor.
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira 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
    Duplicatas entre 3 tabelas AttachmentBD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (507 Kb) Baixado 8 vez(es)
    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  tauron 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
    mduarteteixeira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  mduarteteixeira 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).

    Conteúdo patrocinado


    Duplicatas entre 3 tabelas Empty Re: Duplicatas entre 3 tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 06:09