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] Validar formulário de login ao pressionar a tecla enter

    Compartilhe
    avatar
    ClaudioTecnico
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 19/02/2014

    [Resolvido] Validar formulário de login ao pressionar a tecla enter

    Mensagem  ClaudioTecnico em Ter 29 Abr 2014, 20:52

    Boa tarde pessoal, tudo bem?

    Tenho um banco de dados onde consegui implementar a funcionalidade mencionada no título do tópico (acessar o sistema na tela de login pressionando a tecla enter), copiando o código do botão de login e colocando no evento "Ao pressionar tecla" deste botão.

    Do jeito que está funciona corretamente, mas acho que o código tem como ser "enxugado", unindo tanto a função de clique do botão quanto a de pressionar a tecla enter para validação do login. Segue abaixo os códigos:

    Código do evento clicar do botão "Login":
    Código:

    Private Sub btnLogin_Click()
      Dim strSenha As String
      If IsNull(cbxLogin) Then
        MsgBox "Por favor, informe um nome de usuário!", vbExclamation, "Login Inválido"
        cbxLogin.SetFocus
      ElseIf IsNull(txtSenha) Then
        MsgBox "Por favor, informe a senha!", vbExclamation, "Senha Inválida"
        txtSenha.SetFocus
      Else
        'Realizando a limpeza da senha
        strSenha = limparSenha(txtSenha)
        If verificaLogin(cbxLogin, strSenha) Then
          DoCmd.close
          Call AccessTransparente(250)  'aqui é para a janela de fundo voltar a aparecer...
          DoCmd.OpenForm "FPrincipal"
        Else
          MsgBox "Senha incorreta! Por favor, tente novamente.", vbExclamation, "Login"
          txtSenha.SetFocus
        End If
       End If
    End Sub

    Código do evento "Ao pressionar tecla" deste mesmo botão:
    Código:

    Private Sub btnLogin_KeyPress(KeyAscii As Integer)
      If KeyAscii = vbKeyReturn Then
        Dim strSenha As String
      If IsNull(cbxLogin) Then
        MsgBox "Por favor, informe um nome de usuário!", vbExclamation, "Login Inválido"
        cbxLogin.SetFocus
      ElseIf IsNull(txtSenha) Then
        MsgBox "Por favor, informe a senha!", vbExclamation, "Senha Inválida"
        txtSenha.SetFocus
      Else
        'Realizando a limpeza da senha
        strSenha = limparSenha(txtSenha)
        If verificaLogin(cbxLogin, strSenha) Then
          DoCmd.close
          Call AccessTransparente(250)  'aqui é para a janela de fundo voltar a aparecer...
          DoCmd.OpenForm "FPrincipal"
        Else
          MsgBox "Senha incorreta! Por favor, tente novamente.", vbExclamation, "Login"
          txtSenha.SetFocus
        End If
       End If
      End If
    End Sub

    Observem que é praticamente o mesmo código, porém são executados de modos diferentes. A desvantagem é o espaço ocupado desnecessariamente na memória, por isso gostaria de otimizar esses códigos.

    Será que algum amigo pode me ajudar a solucionar esse problema?

    Desde já, meu muito obrigado a todos!


    .................................................................................
    *** Versões dos programas***
    Windows 7/8 64 bits
    MS Office 2013 64 bits
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1346
    Registrado : 17/03/2011

    Re: [Resolvido] Validar formulário de login ao pressionar a tecla enter

    Mensagem  Cláudio Machado em Qua 30 Abr 2014, 20:52

    Olá, tente o seguinte:

    Coloque este código no btnLogin_KeyPress

    Código:


    If KeyCode = vbKeyReturn Then
        Call btnLogin_Click
    End If


    O evento "Visualizar teclas" do form precisa está como "Sim".


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.
    avatar
    ClaudioTecnico
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 19/02/2014

    Re: [Resolvido] Validar formulário de login ao pressionar a tecla enter

    Mensagem  ClaudioTecnico em Qui 01 Maio 2014, 05:18

    Obrigado pela ajuda chará Claudio Machado, seu código funcionou perfeitamente.

    A única coisa que alterei no código é que no lugar de "KeyCode" eu precisei colocar o nome da variável como "KeyAscii", pois é o nome que foi definido pelo próprio Access.

    Abraços, e mais uma vez obrigado!!!


    .................................................................................
    *** Versões dos programas***
    Windows 7/8 64 bits
    MS Office 2013 64 bits
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1346
    Registrado : 17/03/2011

    Re: [Resolvido] Validar formulário de login ao pressionar a tecla enter

    Mensagem  Cláudio Machado em Sex 02 Maio 2014, 12:40

    Bom dia.
    Que bom que resolveu!
    O fórum agradece o retorno.
    Saudações  cheers 


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

      Data/hora atual: Qui 20 Jul 2017, 15:26