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
Silvio
Dilson
tiagoluizaquino
7 participantes

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    avatar
    tiagoluizaquino
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 12/04/2016

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  tiagoluizaquino 4/5/2016, 14:12

    Bom dia a todos.

    Estou enfrentando um grande problema com um subformulário.

    Tenho um botão "cancelar registro" no formulário principal, e tenho alguns itens para preenchimento em subformulário, quando realizo uma alteração nos itens digitados em subformulário e cancelo a edição do registro mesmo assim os itens alterados são salvos, porém gostaria que as alterações fossem canceladas.

    Em outros formulários que não possuem subformulários o botão funciona normalmente.

    Existe algum código especifico para que isso não ocorra?

    Obrigado.!


    Última edição por Dilson em 19/5/2016, 18:42, editado 1 vez(es) (Motivo da edição : Modificar o titulo para melhorar a ferramenta de buscas do fórum)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 14/5/2016, 04:36

    Sua questão é interessante e acho ser um problema de muitos. Não tenho nada concreto para solucionar, mas pensei de repente salvar os dados modificados de cada linha num array e se apertar cancelar poderíamos percorrer esse array e de acordo com as chaves primárias e estrangeiras ir dando update com o dado anterior em cada campo modificado.

    Vou analisar com calma e enquanto isso vamos ver se algum colega interessa ajudar nessa questão.
    avatar
    Convidado
    Convidado


    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Convidado 14/5/2016, 23:22

    Use este código no botão "Cancelar registro"

    Dim apaga As Integer
    DoCmd.SetWarnings False
    apaga = MsgBox("Confirma excluir registro? ", vbYesNo + vbQuestion, "Excluir")
    Select Case apaga
    Case vbYes
    DoCmd.RunCommand acCmdDeleteRecord
    Case vbNo
    End Select
    DoCmd.GoToRecord , "", acNewRec
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 16/5/2016, 16:31

    Oi cafpr,

    De acordo com a proposta do tiago, a exclusão de registro é uma etapa do conjunto de ações necessárias. Sua sugestão servirá na montagem da solução, obrigado e vamos pensando.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 16/5/2016, 17:34

    Se me permitem um pitaco,algo assim talvez possa ajudar.

    DoCmd.CancelEvent
    Me.Undo

    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 16/5/2016, 17:52

    Obrigado Silvio pelo interesse.

    Se o dado estivesse no form esse comando com certeza resolveria. O dado está no subform acoplado ao form e o usuário a essa altura passou por lá editou ou inseriu registros.

    A solução se baseia em desfazer as ações feitas nos registros do subform, a partir do comando de um botão no form.

    Significa pensar que adições serão excluídas e edições voltarão ao último dado encontrado na abertura.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  FabioPaes 16/5/2016, 19:35

    Será que se for usado a propriedade .OldValue nao daria para resolver isso? Ao clicar ele Pega o Nome do Campo e aplica o Valor Anterior...

    So uma Ideia...

    Vejam, que neste exemplo o Mestre jPaulo fez algo parecido que da pra ser aproveitado.
    https://www.maximoaccess.com/t530-registra-um-historico-de-alteracoes

    O que os nobres acham da Idéia?


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 16/5/2016, 19:41

    Vejamos então uma questão de procedimentos de trabalho / rotina.

    Eu preencho os dados que se pede no formulário principal.

    Parto então para preenchimento do sub formulário, mas em determinado momento, eu preciso cancelar alguns itens no sub formulário ou cancelar tudo...certo ?


    O que pretendemos fazer ?

    a- cancelar esse pedido ou registro ?
    b- cancelar itens que estão no sub formulário ?

    Agora sinceramente fiquei sem entender a lógica. Interessante seria ver como está o relacionamento das tabelas envolvidas nesse caso.
    avatar
    Convidado
    Convidado


    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Convidado 17/5/2016, 02:10

    Poderia ser assim:

    No evento "Antes de Atualizar" do subformulário usar a função:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim X As Integer
    If Me.Dirty Then
    X = MsgBox("Houve adição ou alterações de registro, deseja salvar ?", vbYesNo, "Confirmação")
    If X = vbNo Then
    Me.Undo
    End If
    End If

    End Sub
    avatar
    romeufinda
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 39
    Registrado : 08/10/2015

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  romeufinda 17/5/2016, 08:26

    Bom dia amigos eu tambem costumava ter esse problema.

    Para resolver, comecei a usar consultas exclusão:

    1ª consulta apaga os dados da tabela vinculada onde o criterio é o id activo;
    2ª consulta apaga os dados da tabela principal do id activo;

    Depois é só colocar no evento ao clicar do botao cancelar.

    E tem funcionado tranquilamente.

    para mais detalhes contacte: conta.cons@hotmail.com
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 17/5/2016, 11:24

    Bom dia a todos...

    Aproveitando a dica do Clóvis, poderia ser assim também:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim X As Integer
    If Me.Dirty Then
    X = MsgBox("Houve adição ou alterações de registro, deseja salvar ?", vbYesNo, "Confirmação")
    If X = vbNo Then
    Me.Undo
    else
    docmd save

    End If
    End If

    End Sub
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 17/5/2016, 11:56

    Como eu disse, anteriormente nesse tópico romeufinda,
    https://www.maximoaccess.com/t26637-verefica-duplicidade-antes-de-cadastra-as-provas

    Poste a dica, a solução para que demais membros possam ver, aprender e resolver as duvidas e problemas.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 17/5/2016, 12:09

    Bom dia amigos!

    O Autor do tópico deve de estar ocupado que não manifestou ainda suas impressões.

    As sugestões são válidas para ação no form. A prática do romeu é válida para o caso, no entanto atende apenas à exclusão, faltando a edição do dado ao estado anterior.

    Eu fiz um exemplo e obtive um avanço inicial. Ele está fazendo apenas com um campo e, está faltando avançar para atender mais campos e para não repetir capturas de oldvalue.

    Ao baixar o exemplo observem que o foco é os dados do subformulário. Modifique os dados do subform apenas uma vez por registro no campo NomeFornecedor e acrescentem quantos registros desejarem e em seguida apertem Cancelar no form.

    Esse exemplo ainda possui muitas falhas e limitado para gerenciar apenas um campo. Avançaremos no aperfeiçoamento.


    Última edição por Dilson em 20/5/2016, 01:45, editado 1 vez(es) (Motivo da edição : Exclusão do exemplo (mal sucedido) para economizar espaço no servidor)
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 17/5/2016, 12:21

    Dilson, bom dia.

    Interessante e didático o teu exemplo. Mas supondo que o sub formulário esteja completo com 14 itens e eu quero cancelar apenas 3 itens ( cliente cancelou esses itens ) ?

    Penso....não seria mais simples e rápido colocarmos um botão de cancelar em cada item ?
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 17/5/2016, 12:35

    Focado em exclusão com certeza sim.

    Já à edição de dados ao estado anterior, dependeria da lembrança do usuário de quais registros foram alterado.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 17/5/2016, 12:51

    Baseado em teu exemplo Dilson, estou tentando montar algo assim....

    Private Sub Comando8_Click()
    If Forms!tblform!tblSubForm!cancela = True Then
    If MsgBox("Deseja cancelar esses itens ?", vbYesNo, "Aviso") = vbYes Then
    Dim qArray As Variant
    Dim i As Integer
    qArray = Split(campoDado, ";")
    If Not IsNull(campoDado) Then
    For i = 0 To UBound(qArray)
    If Nz(Len(qArray(i))) > 0 Then
    CurrentDb.Execute qArray(i)
    End If
    Next i
    End If
    campoDado = ""
    Me.tblSubForm.Requery
    Else: Exit Sub
    End If
    End If


    End Sub
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Celso Roberto 17/5/2016, 18:18

    Vou participar para ver resultado.

    Uso este código para algumas situações

    Abraços
    Anexos
    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario AttachmentUpdate_Form_SubForm.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (103 Kb) Baixado 38 vez(es)


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 19/5/2016, 07:00

    Olá amigos,

    Concluído. Funcionando 100%

    Experimente editar todos os dados e acrescentar quantos registros quiser e apertar Cancelar pra ver. Vai restaurar tudo no subformulário.

    Desisti de array e investi em recordset centralizando o código em apenas dois eventos:
    Ao Carregar do formulário e no Botão Cancelar

    Ao Carregar do Form:

    DoCmd.DeleteObject acTable, "tmpOldValue"
    CurrentDb.Execute "SELECT tblSubForm.* INTO tmpOldValue FROM tblSubForm WHERE id_e=" & Me.TXT_id_p



    Ao apertar o botão Cancelar:

    Dim qRS As DAO.Recordset
    Dim qSQL As String
    Dim qRS2 As DAO.Recordset
    Dim qSQL2 As String

    qSQL = "SELECT * FROM tmpOldValue"
    Set qRS = CurrentDb.OpenRecordset(qSQL)
    qSQL2 = "SELECT * FROM tblSubForm WHERE id_e=" & Me.TXT_id_p
    Set qRS2 = CurrentDb.OpenRecordset(qSQL2)

    If qRS.RecordCount > 0 Then
      qRS.MoveLast
      qRS.MoveFirst
    End If
    If qRS2.RecordCount > 0 Then
      qRS2.MoveLast
      qRS2.MoveFirst
    End If

    Do Until qRS2.EOF
      strCriteria = "id_p =" & qRS2("id_p")
      qRS.FindFirst strCriteria
         With qRS
             If .NoMatch = True Then
                  qRS2.Delete
             Else
                  qRS2.Edit
                  qRS2("NomeFornecedor") = qRS("NomeFornecedor")
                  qRS2("Endereco") = qRS("Endereco")
                  qRS2.Update
             End If
         End With
       qRS.MoveNext
    qRS2.MoveNext
    Loop

    qRS.Close
    Set qRS = Nothing
    qRS2.Close
    Set qRS2 = Nothing
    Me.tblSubForm.Requery




    Última edição por Dilson em 20/5/2016, 01:47, editado 2 vez(es) (Motivo da edição : Exclusão do exemplo (experimental) para economizar espaço no servidor)
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Celso Roberto 19/5/2016, 18:14

    Boa tarde a todos...

    Perfeito Dilson, mas vamos seguir.
    1º - seu código exclui tudo enquanto se esta editando o subform Ok!
    2º - Abri novamente o form para editar ele só altera o item que esta editando Ok!,

    Então:
    1º - se estou editando o subform pela primeira vez adicionei 10 itens e na edição do 11 quero alterar só ele?.
    2º - se abri o form para editar e tenho que alterar item, como excluir ele e adicionar outro?

    Como já foi dito e também no modelo que uso por falta de um código único
    a)-quando quero excluir tudo clico no botão cancelar
    b)-quando quero excluir 1 iten clico 2 vezes no campo nome do produto e excluo só ele

    Nota: Acho também que seria a dúvida do autor, e agaurdamos o pronunciamento dele até para mostrar o código que esta usando.

    Abraços





    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 19/5/2016, 18:33

    Oi Celso,

    O exemplo tem um objetivo: Restaurar registros ao estado anterior e excluir registros acrescentados na sessão atual sob a decisão de não apertar o botão Salvar e sim o botão Cancelar que é o mesmo que desistir de editar. Evidentemente, você terá recursos adicionais por registro como excluir escolhendo a linha do registro e que ainda assim estará passível de sofrer a ação vinda do botão Cancelar.

    Se ainda houver dúvidas estou a disposição. Como o Autor do tópico não se manifestou até agora, darei como Resolvido o caso. Qualquer coisa é só reabrir.


    Última edição por Dilson em 19/5/2016, 18:49, editado 1 vez(es)
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Silvio 19/5/2016, 18:37

    Dilson, boa tarde.

    Coloque o mesmo no repositório de exemplos. Ele está sendo de grande ajuda para muita gente.

    Abraços.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 19/5/2016, 18:48

    O manifesto do Celso me fez pensar e descobri que falta contemplar a restauração de registros excluídos. Imagina que excluiu uma linha e depois se arrependeu de ter feito isso. Vou implementar esse recurso também e depois volto a postar já no repositório de exemplos conforme sugestão.
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Celso Roberto 19/5/2016, 18:58

    Perfeito..

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 20/5/2016, 01:52

    Completíssimo.

    O algoritmo final:

    ->Ao Carregar no Formulário:

    DoCmd.DeleteObject acTable, "tmpOldValue"
    CurrentDb.Execute "SELECT tblSubForm.* INTO tmpOldValue FROM tblSubForm WHERE id_e=" & Me.TXT_id_p



    ->Ao Clicar no botão Cancelar:

    Dim qRS As DAO.Recordset
    Dim qRS2 As DAO.Recordset
    Dim qRS3 As DAO.Recordset
    Dim qSQL As String
    Dim qSQL2 As String
    Dim qSQL3 As String
    qSQL = "SELECT * FROM tmpOldValue"
    Set qRS = CurrentDb.OpenRecordset(qSQL)
    qSQL2 = "SELECT * FROM tblSubForm WHERE id_e=" & Me.TXT_id_p
    Set qRS2 = CurrentDb.OpenRecordset(qSQL2)
    If qRS.RecordCount > 0 Then
      qRS.MoveLast
      qRS.MoveFirst
    End If
    If qRS2.RecordCount > 0 Then
      qRS2.MoveLast
      qRS2.MoveFirst
    End If
    Do Until qRS2.EOF
      strCriteria = "id_p =" & qRS2("id_p")
      qRS.FindFirst strCriteria
         With qRS
             If .NoMatch = True Then
                  qRS2.Delete
             Else
                  qRS2.Edit
                  qRS2("id_e") = qRS("id_e")
                  qRS2("NomeFornecedor") = qRS("NomeFornecedor")
                  qRS2("Endereco") = qRS("Endereco")
                  qRS2.Update
             End If
         End With
         qRS.Edit
         qRS("Captura") = -1
         qRS.Update
       qRS.MoveNext
    qRS2.MoveNext
    Loop
    qSQL3 = "SELECT * FROM tmpOldValue WHERE Captura=0"
    Set qRS3 = CurrentDb.OpenRecordset(qSQL3)
    If qRS3.RecordCount > 0 Then
    qRS2.MoveLast
    qRS2.MoveFirst
    Do While Not qRS3.EOF
      qRS2.AddNew
      qRS2("id_e") = qRS3("id_e")
      qRS2("NomeFornecedor") = qRS3("NomeFornecedor")
      qRS2("Endereco") = qRS3("Endereco")
      qRS2.Update
    qRS3.MoveNext
    Loop
    End If
    CurrentDb.Execute "UPDATE tmpOldValue SET Captura=0"
    qRS.Close
    Set qRS = Nothing
    qRS2.Close
    Set qRS2 = Nothing
    qRS3.Close
    Set qRS3 = Nothing
    Me.tblSubForm.Requery
    'Por Dilson em 05/2016 Fórum MaximoAccess - Blog AccessDoProgramador



    NOTA: Terá de ser criado obrigatoriamente o campo Captura do tipo Sim/Não com valor padrão = 0 na tabela do subformulário, para que sirva ao processamento.

    O exemplo está no repositório, pronto para download:

    Restauração de registros editados e excluídos de SubFormulário acoplado ao Formulário
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Alvaro Teixeira 20/5/2016, 08:47

    Olá a todos.
    Dilson Parabéns, excelente contribuição.

    Falta mesmo é o retorno do colega que abriu o tópico.
    cheers
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Dilson 20/5/2016, 17:40

    Obrigado. É como você costuma dizer: "É MaximoAccess!".
    cheers Abraço!
    Celso Roberto
    Celso Roberto
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    Registrado : 01/03/2014

    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Celso Roberto 21/5/2016, 03:07

    Olá Dilson..

    Valeu...
    Você não desistiu mesmo hein cara!!

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Conteúdo patrocinado


    [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario Empty Re: [Resolvido]Cancelar registros, restaurar ao estado anterior e excluir acréscimos do SubFormulario acoplado no Formulario

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 10:38