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


    Impedir a atualização de registros antigos em tabelas relacionadas

    avatar
    Piruba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 31/01/2018

    Impedir a atualização de registros antigos em tabelas relacionadas Empty Impedir a atualização de registros antigos em tabelas relacionadas

    Mensagem  Piruba em 3/10/2018, 20:25

    Boa tarde galera!

    Estou desenvolvendo um sistema de controle de pedidos em access, mas infelizmente travei em um empecilho. Criei um arquivo basico para exemplificar o meu problema.

    Nesse arquivo criei 2 tabelas:

    - "TB_Modelos" que representa o cadastro dos modelos (entender por modelo o produto que o cliente vai comprar)
       - Campo 1: TB_MO_Id --> Código do modelo (Chave primaria)
       - Campo 2: TB_MO_Cliente --> Nome do cliente
       - Campo 3: TB_MO_Modelo --> Nome do modelo
       - Campo 4: TB_MO_Mascara --> Cor da mascara do modelo
    - "TB_OS" que representa a ordem de serviço
       - Campo 1: TB_OS_Id --> Código da ordem de serviço (Chave primaria)
       - Campo 2: TB_OS_MO_Id --> Código do modelo (Chave secundária)
       - Campo 3: TB_OS_Data --> Data da OS

    Criei os formularios referentes a essas tabelas, só para facilitar na visualização dos dados. Cadastrei um modelo na TB_Modelos, que possui Id = 1, Cliente = Cliente1, Modelo = 123456 e Mascara = Azul. Cadastrei uma ordem de serviço na TB_OS que possui TB_OS_Id = 1, TB_OS_MO_Id = 1 e Data = 03/10/2018. No formulário de ordem de serviço, os campos TB_MO_Cliente, TB_MO_Modelo e TB_MO_Mascara foram inseridos.
    Criei uma relação entre as duas tabelas pelos campos "TB_MO_Id" e "TB_OS_MO_Id", logo as informações "Cliente1", "123456" e "Azul" aparecem também no meu formulario da Ordem de serviço.

    Agora vamos supor que esse mesmo cliente, 1 mês depois, peça para eu fazer uma nova produção, do mesmo modelo, porém com mascara verde ao inves de azul.
    Se eu alterar de "azul" para "verde" o registro já existente do modelo e criar um novo registro na TB_OS, eu estarei alterando também o registro já existente, o que eu não quero. A minha duvida é: é possivel eu fazer essa alteração no registro da TB_Modelos sem que ele altere os registros já existentes referentes a ele na TB_OS ?

    A base de dados para teste está em anexo.

    Desde já agradeço a ajuda!
    Anexos
    Impedir a atualização de registros antigos em tabelas relacionadas AttachmentTeste.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (59 Kb) Baixado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7249
    Registrado : 05/11/2009

    Impedir a atualização de registros antigos em tabelas relacionadas Empty Re: Impedir a atualização de registros antigos em tabelas relacionadas

    Mensagem  Alexandre Neves em 3/10/2018, 22:18

    Boa noite, e bem-vindo ao fórum
    E porque não cria um novo registo, com os novos dados (que no caso só muda 1 campo)?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4358
    Registrado : 20/04/2011

    Impedir a atualização de registros antigos em tabelas relacionadas Empty Re: Impedir a atualização de registros antigos em tabelas relacionadas

    Mensagem  Silvio em 4/10/2018, 12:41

    Bom dia...

    Não vejo sentindo algum em " reaproveitar " um registro !!!!

    Caso um dia precise, necessite de um histórico de atividades, compras, material do teu cliente.....já era, não vai ter !!

    Fica aqui a dica.

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    Piruba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 31/01/2018

    Impedir a atualização de registros antigos em tabelas relacionadas Empty Re: Impedir a atualização de registros antigos em tabelas relacionadas

    Mensagem  Piruba em 4/10/2018, 13:26

    Saudações Alexandre e Silvio! Primeiramente, muito obrigado pela atenção, esse é meu primeiro post em um forum na vida. Sempre achei que a resposta demoraria semanas para aparecer, mas acho que estava enganado! hahaha

    Agora, voltando ao problema:
    Alexandre:
    Essa é a solução que utilizo atualmente.
    Lembrando que o arquivo que postei aqui, foi uma enorme simplificação para focar apenas na minha dúvida. O modelo real possui em torno de 40 campos na TB_Modelos que podem sofrer uma alteração semelhante a essa que exemplifiquei com a cor da mascara.
    Um ponto que talvez eu não tenha mencionado, é que os meus clientes fazem os pedidos pelo nome do modelo. Então utilizando essa solução eu possuo diversos registros com o mesmo nome de modelo, podendo gerar alguma confusão. Hoje eu trabalho com um outro campo, que controla o gerenciamento das versões do modelo para ter uma diferenciação e uma noção de qual versão saiu antes ou depoi. Mas seria bastante comodo e menos arriscado para nós, se existisse uma solução como a que eu envisagei no post inicial, ou seja, a alteração na TB_Modelos não afetar os registros já existentes da TB_OS.
    Em resumo, as desvatagens que vejo nessa solução são: Aumento da quantidade de dados armazenados (tornando a base mais pesada e acredito que em uma visão de longo prazo isso seja um problema), processo menos eficiente (tempo de criar um novo registro, que será praticamente identico a um já existente, com apenas algumas caracteristicas diferentes entre todas do registro, ao invés de alterar apenas essas características, que em geral é apenas 1 ou 2), necessidade de implementação de um controle de versões de modelos e menor confiança na comunicação de informações (já que podem ocorrer erros nesse controle de versões mais facilmente). Mas pelo tanto que já pesquisei sobre e pela forma como é estruturado, acredito não existir no Access a solução que estou procurando Crying or Very sad

    Silvio:
    É exatamente para ter esse histórico de atividades (que, no meu caso, seria baseado na tabela TB_OS) que eu gostaria que uma alteração na tabela TB_Modelos, não alterasse os registros já existentes da tabela TB_OS. Os motivos de eu querer "reaproveitar" um registro acho que dá para entender pela minha resposta acima.

    Mais uma vez, obrigado pela colaboração!

    Conteúdo patrocinado

    Impedir a atualização de registros antigos em tabelas relacionadas Empty Re: Impedir a atualização de registros antigos em tabelas relacionadas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/5/2019, 03:14