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


4 participantes

    [Resolvido]Cancelar um sub por outra

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Cancelar um sub por outra

    Mensagem  Marcelo David 6/7/2011, 02:14

    É o sguinte,
    Tenho um forme, e no evento antes de atualizar, pus um código q valida as alteraçõs. Até aí tudo bem.
    O problema é que no botão salvar que criei no evento ao clicar tenho um outro código que confirma que o registro foi salvo com uma msgbox. Mas se eu alterar alguma coisa, clicar em salvar, o outro código (antes de atualizar) é acionado.
    Nesse caso eu quero que apenas o código do botãi funcione e não o outro.
    Daí pensei, se houver algum meio de cancelar a execução do códido seria a solução. Mas se houvr outro meio, também é
    válido.
    Conto com os amigos!!!


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11
    dadokeys90
    dadokeys90
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 84
    Registrado : 23/08/2010

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  dadokeys90 6/7/2011, 03:20

    Marcelo, certamente no sub do seu botão, você informou uma linha pra fechar o form, por isso após ele executar o sub do botão também executará o sub antes de atualizar. O mais certo a fazer é colocar uma rotina para validar os dados apenas no sub do botão, e remover o sub antes de atualizar do form, entendeu? Caso queira colocar um botão fechar(x) no form, também é uma boa idéia, pois este evitaria de fechar o form e salvar registros indesejavelmente(recomendável bloquear o botão fechar da janela do form). No click do botão fechar coloque call seubotãosalvar_click executará o mesmo código do botão salvar. Teste e veja se funcionou!
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Marcelo David 6/7/2011, 12:45

    dadokeys90 obrigado pela dica,
    Mas o problema não é fechar o form, e sim aparececer a mensagem perguntando se realmente eu quero salvar as alterações
    ao clicar em salvar.
    Se eu tiar o código de antes de atualizar, ocorrerá que se o usuário inseriar alguma coisa e for para outro registro, o mesmo será salvo e é isso que eu não quero. Por isso pus o código no evento antes de atualizar.


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  criquio 6/7/2011, 12:57

    Poste o código completo para nossa apreciação por gentileza.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Marcelo David 6/7/2011, 13:55

    Ok criquio, aí vai:
    Evento ao Clicar botão gravar:

    Private Sub btGrava_Click()
    Dim ti As String
    Dim tit As String
    On Error Resume Next

    If IsNull(Me.TipoID) Then
    MsgBox "Informe o tipo de mídia", vbInformation, "Dados incompletos"
    Me.TipoMidia.SetFocus
    Exit Sub
    End If
    If IsNull(Me.Titulo) Then
    MsgBox "Informe o título desta mídia", vbInformation, "Dados incompletos"
    Me.Titulo.SetFocus
    Exit Sub
    End If


    tit = Titulo
    DoCmd.RunCommand acCmdSaveRecord
    MsgBox "" & tit & " gravado com sucesso.", vbInformation, "Gravado"
    Me.Refresh
    End Sub


    Evento Antes de atualizar do form

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    On Error Resume Next
    If MsgBox("Os dados inseridos ou alterados serão descartados, deseja realmente contituar?", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
    DoCmd.RunCommand acCmdUndo
    Else
    DoCmd.CancelEvent
    End If
    End Sub

    Grato


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  criquio 6/7/2011, 14:16

    Me parece que se usasse o evento "Após atualizar" do campo seria melhor, ou não?

    Outra coisa: tit = Titulo

    Acho que Titulo teria que ser entre aspas, a não ser que Titulo seja outra variável ou o nome de um campo.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Marcelo David 7/7/2011, 05:00

    Pus o código no evento após atualizar e mesmo assim não deu certo...


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  vieirasoft 7/7/2011, 11:36

    Experimente assim por favor

    Private Sub btGrava_Click()
    Dim ti As String
    Dim tit As String
    On Error Resume Next

    If IsNull(Me.TipoID) Then
    MsgBox "Informe o tipo de mídia", vbInformation, "Dados incompletos"
    Me.TipoMidia.SetFocus
    ElseIf IsNull(Me.Titulo) Then
    MsgBox "Informe o título desta mídia", vbInformation, "Dados incompletos"
    Me.Titulo.SetFocus
    Else
    tit = Titulo
    DoCmd.RunCommand acCmdSaveRecord
    End If
    Me.Refresh

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Marcelo David 7/7/2011, 17:04

    Mestre Vieira, acabei de testar, e infelizmente não funciou como esperado, o código antes de atualizar é execultado de qualquer forma...


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  vieirasoft 7/7/2011, 17:31

    Não prestou atenção ao que o Grande Criquio disse; Colocar no evento após actualizar, caso contrário o p+rimeiro evento a acontecer é o outro..before, ok. Então coloque no afterupdate()
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Marcelo David 8/7/2011, 02:57

    Consegui resolver graças a ajuda dos mestre, criquio e Vieira.
    Muito obrigado criquio e Vieira que me mostraram a lógica dos eventos.
    O código fico assim:

    Ao clicar Botão grava:

    If IsNull(Me.TipoID) Then
    MsgBox "Informe o tipo de mídia", vbInformation, "Dados incompletos"
    Me.TipoMidia.SetFocus
    Exit Sub
    End If
    If IsNull(Me.Titulo) Then
    MsgBox "Informe o título desta mídia", vbInformation, "Dados incompletos"
    Me.Titulo.SetFocus
    Exit Sub
    End If

    DoCmd.RunCommand acCmdSaveRecord
    Me.Refresh

    Antes de atualizar do form:

    On Error Resume Next
    If IsNull(Me.RegID) Then
    Exit Sub
    ElseIf MsgBox("Deseja gravar as alterações", vbQuestion + vbYesNo, "Confirmação") = vbYes Then
    Me.Refresh
    Else
    Me.Undo
    End If


    Após atualizar do form:


    Dim tit As String
    On Error Resume Next
    tit = Me.Titulo
    MsgBox "" & tit & " gravado com sucesso.", vbInformation, "Gravado"
    End Sub

    Forte abraço.


    .................................................................................
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Domine Access e VBA Criando Um Incrível Sistema Financeiro - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Favicon-16x16   Access e VBA - Formulário Desacoplado - [Passo a passo]
    [Resolvido]Cancelar um sub por outra Yt_16x10 Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Cancelar um sub por outra Marcel11

    Conteúdo patrocinado


    [Resolvido]Cancelar um sub por outra Empty Re: [Resolvido]Cancelar um sub por outra

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 11:58