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
    Ney
    Avançado
    Avançado

    Respeito às Regras 100%

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

    [Resolvido]Erro Do Until Loop

    Mensagem  Ney em Qui 06 Jul 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 : 292
    Registrado : 01/08/2011

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  ronaldojr1 em Qui 06 Jul 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
    Ney
    Avançado
    Avançado

    Respeito às Regras 100%

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

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  Ney em Qui 06 Jul 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 : 292
    Registrado : 01/08/2011

    Re: [Resolvido]Erro Do Until Loop

    Mensagem  ronaldojr1 em Sex 07 Jul 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: Ter 19 Set 2017, 12:45