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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 19/12/2020, 20:25

    Boa tarde!

    Achei esse tópico, mas o código não funcionou. Não acontece nada quando clico para executar.

    Tenho o form pai "formAdmProdutos" e o subform filho "formAdmProdGrade". Preciso que ao clicar no botão "btCancelarEdicao" do form pai, o sistema verifique se houve alteração tanto no form quanto no subform e se houver em um dos dois, ele pergunta se realmente desejo desfazer. Se clicar em "sim" ele deve desfazer as alterações tanto no form quanto no subform.

    Código:
    Me.Undo
    Forms!formAdmProdutos.formAdmProdGrade.SetFocus
    DoCmd.RunCommand (acCmdUndo)

    Só que esse código não funfou no meu caso Neutral


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Marcelo David 21/12/2020, 11:28

    Bom dia,
    Como está trabalhando com formulário pai e filho,
    o método undo não funcionará para o pai, caso já
    tenha informado algo no filho.

    Explico:
    Quando você preenche os dados dos pai e clicar no formulário
    filho (subformulário) o Access já salva os dados do formulário
    pai. Então o undo não funcionará no pai, pois os dados já foram
    salvos.

    Como sugestão, no código do botão cancelar edição, poderia apagar
    o registro do pai, que se estiver relacionado corretamente, irá apagar
    os dados do filho.

    Então, ao invés de usar o undo, use o delete.


    .................................................................................
    Marcelo David | [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 21/12/2020, 17:18

    Olá Marcelo, boa tarde! E obrigado pela atenção!

    Pois é amigo, meu problema é a pessoa preencher todo form pai, começar preencher o subform filho e desistir do processo, daí o sistema já gerou código, salvou os dados do pai e tudo mais.

    Vc disse que após o usuário preencher o form pai e clicar no form filho, o sistema salva os dados do pai certo? Existe algum código/método então que, caso o usuário desista do cadastro depois de ter clicado no filho, o sistema desfaça (ou exclua) os dados dele e exclua o último registro do pai? Pq dessa forma seria perfeito pra mim.

    Só para facilitar:

    tblProdutos -> formAdmProdutos (form pai)
    tblProdutosGrade -> formAdmProdGrade (form/subform filho)



    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Marcelo David 21/12/2020, 17:32

    No caso, precisaríamos saber qual o momento em que deva excluir os dados.
    Poderia ser no momento de fechar o formulário ou ao clique de um botão, por
    exemplo...

    Mas no seu caso, como pensa isso?


    .................................................................................
    Marcelo David | [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 21/12/2020, 17:43

    No meu caso seria quando o usuário clicar no botão "btCancelarCadastro" que fica no form pai.[Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Telaca11


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Marcelo David 21/12/2020, 19:14

    Bem, se os relacionamentos estiverem corretos, isso já deve funcionar:

    Código:
    If MsgBox("Gostaria realmente de cancelar a inserção?", vbQuestion+vbYesNo,"Atenção") = vbYes Then
       Currentdb.Execute "DELETE tblProdutos WHERE CampoChavePrimariaDaTabela=" & Me.CampoChavePrimariaFormulario, dbFailOnError
       MsgBox "Cadastro desfeito com sucesso!" & vbNewLine & "Nenhum dado foi gravado.",vbInformation, "Informação"
    End If

    Substitua:
    CampoChavePrimariaDaTabela pela chave primária da tabela
    CampoChavePrimariaFormulario pelo campo no formulário que está vinculado a chave primária da tabela.

    Isso irá funcionar se nos relacionamentos entre as tabelas estiver marcado para deleção em cascata.


    .................................................................................
    Marcelo David | [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 21/12/2020, 20:21

    Marcelo, acho que esse é o caminho, mas ao confirmar a exclusão ele emite a msg de erro: "Erro de sintaxe (operador faltando) na expressão de consulta 'tblProdutos' WHERE skuModelo=1020000000011'."

    A chave primária da tblProdutos é o campo 'skuModelo' e na tblProdutosGrade é a 'idGrade' de numeração automática e o relacionamento está conforma foto abaixo..

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Relaci10


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 23/12/2020, 02:33

    Boa noite Marcelo!

    Olha, eu resolvi mudar um pouco o projeto e criei um form à parte para cadastrar a grade. Daí fica mais fácil controlar as inclusões/edições. Ao clicar no botão para concluir o cadastro de produtos, o sistema pergunta o usuário se deseja cadastrar a grade do produto, se ele clicar em "sim", o sistema abre o form (com o mesmo subform dentro dele) de cadastro de grade já filtrado no registro atual.

    Só que, mesmo eu colocando um botão de desfazer dentro do subform, ele não está desfazendo as alterações.


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Marcelo David 23/12/2020, 14:07

    Bom dia
    Krauss escreveu:Marcelo, acho que esse é o caminho, mas ao confirmar a exclusão ele emite a msg de erro: "Erro de sintaxe (operador faltando) na expressão de consulta 'tblProdutos' WHERE skuModelo=1020000000011'."
    Poderia postar a linha da sql que faz a exclução para vermos o motivo do erro.

    Krauss escreveu:Só que, mesmo eu colocando um botão de desfazer dentro do subform, ele não está desfazendo as alterações.
    Ele somente desfaz o registro atual, ou seja, a linha selecionada em edição.

    Ainda assim fica dependente de excluir ou criar uma transação (essa um pouco mais complexa, talvez nçao recomendada nesse caso, mas é possível)


    .................................................................................
    Marcelo David | [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 252
    Registrado : 23/12/2011

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Krauss 24/12/2020, 00:39

    Boa noite Marcelo!

    É cara eu percebi mesmo que ele desfaz somente a última linha (selecionada) Crying or Very sad

    Mas viu encerrar esse tópico. Infelizmente o usuário vai ter q desfazer na "unha" mesmo.

    De qualquer forma muito obrigado pela ajuda, acabei aprendendo mais sobre esse assunto com sua interação.

    Feliz Natal!!! santa


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois Empty Re: [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois

    Mensagem  Marcelo David 24/12/2020, 04:16

    Maravilha! Feliz Natal a você e sua família! cheers santa


    .................................................................................
    Marcelo David | [Resolvido]Desfazer (Me.Undo) tanto no form quanto no subform caso haja alteração em um dos dois LinkedIn_Icon.jpg.original LinkedIn
    https://www.freetool.dev

      Data/hora atual: 17/6/2021, 18:57