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]Erro Do Until Loop

    Compartilhe
    avatar
    Sidney
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 267
    Registrado : 08/10/2012

    [Resolvido]Erro Do Until Loop

    Mensagem  Sidney em 6/7/2017, 17:51

    Bom dia,

    Estou tentando adaptar esse código no meu sistema de login, onde se o usuário erra a senha 3 vezes o sistema fechará automaticamente, porém quando o usuário erra a primeira senha senha, ele já roda as 3 fazes do loop, não dando intervalo para o usuário inserir a senha novamente, segue código abaixo;

    Código:

    Dim intErroSenha As Integer
                
                intErroSenha = 0
                
                Do Until intErroSenha = 3
              
                intErroSenha = intErroSenha + 1
                          
                    If intErroSenha = 1 Then
                        MsgBox "Senha Incorreta, 1ª Tentativa...", vbInformation, "Atenção"
                        Me.Txt_Senha = ""
                        Me.Txt_Senha.SetFocus
                        
                    
                    ElseIf intErroSenha = 2 Then
                        MsgBox "Senha Incorreta, 2ª Tentativa, na 3º você sairá do Sistema", vbInformation, "Atenção"
                        Me.Txt_Senha = ""
                        Me.Txt_Senha.SetFocus
                      
                    End If
                    
                Loop
                
                MsgBox "Errou 3 vezes", vbInformation, "Atenção"
                'DoCmd.Quit acQuitSaveAll

    att;

    Ney
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 323
    Registrado : 01/08/2011

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  ronaldojr1 em 6/7/2017, 19:22

    boa tarde

    siga os seguintes passos
    1º cole essas duas funcoes no vba(tem que estar dentro do formulario e nao em um modulo a parte, pq se nao vai dar erro)

    Código:
    Private Sub incrementaTentativaErro()
        TempVars.Add "tentativaSenhaErrada", TempVars.Item("tentativaSenhaErrada") + 1
    End Sub

    Private Sub iniciaContadorTentativaErro()
        TempVars.Add "tentativaSenhaErrada", 0
    End Sub

    2º adicione o seguinte codigo no evento do formulario "ao carregar"
    Código:
    Private Sub Form_Load()
        iniciaContadorTentativaErro
    End Sub

    3º adapte o codigo de exemplo
    Código:
    Private Sub botaoLogin_Click()

    If Me.txtLogin = "ronaldo" And Me.txtSenha = "123" Then
        iniciaContadorTentativaErro
        MsgBox "Logado com sucesso!!!"
       
    Else
      incrementaTentativaErro
      If TempVars.Item("tentativaSenhaErrada") >= 3 Then
          MsgBox "Número de tentativas excedidas!!!", vbCritical
          DoCmd.Quit
      Else
          MsgBox "Senha ou login errado!" & Chr(13) & "Tente novamente!!!", vbCritical
          Me.txtSenha = ""
          Me.txtLogin = ""
          Me.txtLogin.SetFocus
      End If
    End If

    End Sub
    avatar
    Sidney
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 267
    Registrado : 08/10/2012

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  Sidney em 6/7/2017, 20:57

    Perfeito ronaldo

    Mais uma vez obrigado!

    abraço

    att;

    Ney
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 323
    Registrado : 01/08/2011

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  ronaldojr1 em 7/7/2017, 13:08

    so faz uma alteração que pensei hoje.

    na parte que o usuário se loga com sucesso eu usei a função para zerar os contadores, mas o correto seria tirar da memoria essa variavel
    pq vc so usa ela no formulario de login. entao para fazer isso use a função TempVars.RemoveAll apos o usuário se logar com sucesso.

    boa sorte ai fera. flw

      Data/hora atual: 17/7/2018, 04:26