MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Botão Sair - Cancelar Input

    Compartilhe

    PhMarian
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 15/04/2018

    [Resolvido]Botão Sair - Cancelar Input

    Mensagem  PhMarian em 10/7/2018, 15:03

    Olá pessoal,

    Tenho um formulário simples em qual o user tem a opção de salvar o input ou cancelá-lo.
    Para o botão cancelar eu tenho o seguinte código:

    Private Sub bt_close_Click()

    Dim x As Integer
    If Me.Dirty Then
    x = MsgBox("Do you want to save your changes before closing this form?", vbYesNo, "Before Closing")
    If x = vbYes Then
       If IsNull(Resultant_Loss) Or IsNull(Phase) Or IsNull(Mfg_Process) Or IsNull(EPM_Discovery_Step) Or IsNull(Loss_Valuation) Or IsNull(Description_of_Loss) Or IsNull(Project) Then
       MsgBox "Please fill all fields !", vbExclamation, "Warning"
       Exit Sub
    Else
       Me.Undo
    End If
    End If
    DoCmd.Close acForm, Me.Name
    End If
    End Sub

    O problema é que quando eu clico em "Não", o form fecha como pedido mas se houver algum campo preenchido, o mesmo é registrado na database. (O que não era para acontecer).

    A minha dúvida é: O que tem de errado com o meu código? Acredito que seja algum detalhe simples que eu estou esquecendo.

    Agradeço desde já se puderem me ajudar com esta dúvida.

    Atenciosamente,
    Paulo
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Botão Sair - Cancelar Input

    Mensagem  Silvio em 10/7/2018, 18:18

    Experimente...

    Else
    Docmd.CancelEvent
    Me.Undo


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    PhMarian
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 15/04/2018

    Resposta à sugestão

    Mensagem  PhMarian em 11/7/2018, 03:14

    Obrigado pela tentativa de ajuda Silvio.
    Testei e não funcionou. Sad

    Mas tenho boas notícias, agora que cheguei em casa eu consegui dar uma olhadinha no caso com mais tranquilidade.
    Resolvi o problema, na verdade era a estrutura do meu código que estava incorreta.

    Segue a linha do meu novo código que não salva os valores em caso de "não" seja selecionado OU salva os valores que estiverem preenchidos nos campos de obrigatoriedade caso o "sim" seja selecionado:

    Código:
    Private Sub bt_close_Click()

    Dim x As Integer
    If Me.Dirty Then
    x = MsgBox("Would you like to save your changes before closing this form?", vbYesNo, "Save Changes")
       If x = vbYes Then
           If IsNull(Resultant_Loss) Or IsNull(Phase) Or IsNull(Mfg_Process) Or IsNull(EPM_Discovery_Step) Or IsNull(Loss_Valuation) Or IsNull(Description_of_Loss) Or IsNull(Project) Then
           MsgBox "Please fill all required fields!", vbExclamation, "Warning"
           Exit Sub
           Else
           DoCmd.RunCommand acCmdSaveRecord
           DoCmd.Close
           End If
       Else
       Me.Undo
       DoCmd.Close
       End If
    End If
    DoCmd.Close
    End Sub

    Desde já agradeço aqueles que deram uma olhada no tópico, obrigado a todos.
    Paulo Very Happy
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: [Resolvido]Botão Sair - Cancelar Input

    Mensagem  Silvio em 11/7/2018, 11:31

    Que bom que resolveu !
    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: 18/11/2018, 19:10