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

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

    avatar
    Piruba
    Novato
    Novato

    Respeito às regras : 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 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 2 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7971
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4753
    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 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 : 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 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!

      Data/hora atual: 23/6/2021, 05:53