MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Transações em formulário acoplado é possível?

    Compartilhe

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Marcelo David em Seg 09 Jun 2014, 20:10

    Pois bem meus amigos, a dúvida é exatamente essa do título!

    Quando vou gravar dados que envolva mais de uma tabela, uso transações para
    garantir a integridade dos dados gravados.

    Mas trabalhando com formulários acoplados e contendo subformulários, vejamos a situação a seguir:

    Tenho um formulário A e nesse formulário, tenho um subformulário B.

    Preciso garantir que os dados do formulário A só sejam gravados caso
    existam dados no subformulário B.

    Imagine que o usuário inicie um novo registro no formulário A e quando ele
    entrar no subformulário B, os dados do formulário A já serão gravados no
    banco (padrão do Access). Pois bem, o usuário não inclui os dados no subformulário B e simplesmente
    fecha o formulário ficando assim um registro pai sem seus registros filhos. Como contornar essa situação?

    Para tentar resolver, pensei em usar transações, mas não consegui faze-las funcionar em registros acoplados.

    Tentei algo do tipo:

    Me.CurrentRecord.BeginTrans

    Mas sem sucesso...

    Alguma sugestão sem que tenha que recorrer ao desacoplamento para resolver esse impasse?

    Grato.


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2491
    Registrado : 29/06/2012

    Re: [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Noobezinho em Seg 09 Jun 2014, 23:06

    Olá Marcelo

    Você pode verificar a existência de registro no subformulário, usando  a propriedade recodsetclone.count .

    Se meuform.recodsetclone.Count <>0 então
    Salve o bichinho
    caso contrário
    Grita!!!
    FimdoSe

    ABraços

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Marcelo David em Seg 09 Jun 2014, 23:31

    Muito obrigado pela resposta!
    Já pensei nessa possibilidade também, mas caso por algum motivo a rede "caia" ou o pc desligue sem a rotina de deleção ter rodado, ficaria mesmo assim com o mesmo problema.
    Mas poderia também a cada vez que abrir o sistema ele verificar se existem registros sem "filhos" para assim serem apagados, mas isso seria complicado em um ambiente multe-usuários.


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2491
    Registrado : 29/06/2012

    Re: [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Noobezinho em Ter 10 Jun 2014, 01:16

    Marcelo

    Concordo contigo no tocante a ter uma rotina de verificação, mas deve estar pensando que com o tempo, devido ao aumento de registroa, se tornará demorada.
    Isso pode ser contornado, se a rotina verificar somente os registros criados no dia anterior.
    Digo dia anterior por que  se o programa rodar a rotina ao sair do sistema (verificação do dia atual), geralmente no final de expediente, o usuário não terá paciência de esperar, e pode tentar abortar de alguma forma.

    Creio que com esses dois expedientes, teu temor acaba.

    Obs.: Já usei transações em frente de loja, mas não posso dizer se funcionou, porque meu cliente nunca teve problemas com queda de energia/rede.
    Mas por ser um código, não consigo confiar nessa transações, assim com não confio em replicação.

    Grande abraço

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Marcelo David em Ter 10 Jun 2014, 02:22

    Obrigado Nobi, vou tentar fazer o que sugeriu que também foi o que sugeriu o Claudio nesse tópico: [Você precisa estar registrado e conectado para ver este link.]

    Sobre transações eu lhe afirmo que elas são eficientes sim! Imagine a sequencia:


    BeginTrans

    "INSERT INTO Tabela1..."
    "UPDATE TABELA2..."
    "INSERT INTO TABELA2..."

    CommitTrans

    Erro:

    RollBack


    O que está dentro da transação só é confirmado no banco (nas tabelas) caso
    o código chegue ao CommitTrans. Se não chegar, não grava nada.

    Mas registros em formulários acoplados, não encontrei uma maneira de fazer funcionar (talvez não seja possível mesmo)

    Mas de qualquer forma, sua dica foi útil a minha solução.



    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2491
    Registrado : 29/06/2012

    Re: [Resolvido]Transações em formulário acoplado é possível?

    Mensagem  Noobezinho em Ter 10 Jun 2014, 02:44

    Blz mano

    Qualquer coisa, da um grito !!

    Grande Abraço

    Noob




    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Seg 05 Dez 2016, 16:35