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 do evento "Ao pressionar tecla" deste mesmo botão:
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!
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!