Boa tarde
Estou iniciando esse estudo de login associado a permissão por grupo para depois implementar a permissão para execução ou não das tarefas por ação do usuário no form.
São duas dúvidas:
1) O sistema de login para os usuários Admin e teste 01 abre e mostra no menu principal o nome da pessoa logada.
Entretanto o Login Teste 2 e Teste 3 o botão de comando nem funciona.
Já vi, corrigi e tentei... e não acho o bendito erro.
2) Quando deixo de comentar na codificação do Frm_Login as linhas referente aos botões do comando de navegação (Bt_Nav_1, Bt_Nav_2 e Bt_Nav_3) para funcionem de acordo com usuário logado, apresenta o erro que não conseguiu localizar o campo "Bt_Nav_1 ou 2 ou 3" referido em sua expressão.
Abaixo a codificação inteira do form (tbm em anexo)
Option Compare Database
Private Sub Bt_Login_Click()
'Crio a variavel Nivel usuário
Dim NivelUsuario As Integer
'Crio a variavel TempSenha que será a senha temporária dada ao novo usuário
Dim TempSenha As String
'Crio a variavel ID
Dim ID As Integer
'Crio a variavel paara Usuário atual do form menu principal
Dim UsuarioTemp As String
If IsNull(Me.txt_Usuario) Then
MsgBox "Entre com nome do usuário.", vbInformation, "Nome do Usuário Necessário"
Me.txt_Usuario.SetFocus
ElseIf IsNull(Me.txt_Senha) Then
MsgBox "Digite a senha.", vbInformation, "Senha Necessária"
Me.txt_Senha.SetFocus
Else
' Nome do usuario/Tbl Usuario, Tbl Usuario, Nome do usuario/Tabl Usuario /Nome campo usuario Form
If (IsNull(DLookup("Nome_Usuario", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'"))) Or _
IsNull(DLookup("Senha_Usuario", "Tbl_Usuario", "Senha_Usuario='" & Me.txt_Senha.Value & "'")) Then
' Acima = Senha do usuario/Tbl Usuario, Tbl Usuario, Senha do usuario/Tabl Usuario /Nome campo senha do usuario Form
MsgBox "Nome do usuário ou senha errados.", vbInformation, "Acesso negado"
Me.txt_Usuario = ""
Me.txt_Senha = ""
Me.txt_Usuario.SetFocus
Else
'Uso a variavel NivelUsuario
NivelUsuario = DLookup("[Nivel_Usuario]", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel TempSenha
TempSenha = DLookup("[Senha_Usuario]", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel ID
ID = DLookup("Id_Usuario", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel UsuárioTemp
UsuarioTemp = Me.txt_Usuario
If (TempSenha = "Senha_Usuario") Then
DoCmd.OpenForm "Frm_Cad_Usuario", , , "[Id_Usuario]=" & ID
Else
'Função usuario logado Administrador
If NivelUsuario = 1 Then
MsgBox "Acesso permitido", vbInformation, "Autenticação efetuada com sucesso"
DoCmd.OpenForm "Frm_MenuInicial"
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
Forms![Frm_MenuInicial]![Bt_Nav_1].enable = True
Forms![Frm_MenuInicial]![Bt_Nav_2].enable = True
Forms![Frm_MenuInicial]![Bt_Nav_3].enable = True
'Função usuario logado usuário
ElseIf NivelUsuario = 2 Then
DoCmd.OpenForm "Frm_MenuInicial"
'Coloca nome usuario logado no form
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
'Habiliata botões de navegação conforme a função do usuario logado
' Forms![Frm_MenuInicial]![Bt_Nav_1].enable = True
' Forms![Frm_MenuInicial]![Bt_Nav_2].enable = True
' Forms![Frm_MenuInicial]![Bt_Nav_3].enable = True
'Função usuario logado Teste
If NivelUsuario = 3 Then
MsgBox "Acesso permitido", vbInformation, "Autenticação efetuada com sucesso"
DoCmd.OpenForm "Frm_MenuInicial"
'Coloca nome usuario logado no form
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
'Habiliata botões de navegação conforme a função do usuario logado
' Forms![Frm_MenuInicial]![Bt_Nav_1].enable = False
' Forms![Frm_MenuInicial]![Bt_Nav_2].enable = False
' Forms![Frm_MenuInicial]![Bt_Nav_3].enable = False
End If
End If
End If
End If
End If
End Sub
'Private Sub Form_Load()
' DoCmd.ShowToolbar "Ribbon", acToolbarNo
'End Sub
Private Sub bt_close_Click()
DoCmd.Quit
End Sub
Private Sub bt_CriarConta_Click()
DoCmd.Close acForm, "Frm_Login"
DoCmd.OpenForm "Frm_Novo_Usuario"
End Sub
Private Sub sl_ExibirSenha_AfterUpdate()
' exibir senha
If sl_ExibirSenha = True Then
txt_Senha.InputMask = ""
Else
txt_Senha.InputMask = "Senha_Usuario"
End If
Alguma ideia de como prosseguir?
Obrigado.
End Sub
Estou iniciando esse estudo de login associado a permissão por grupo para depois implementar a permissão para execução ou não das tarefas por ação do usuário no form.
São duas dúvidas:
1) O sistema de login para os usuários Admin e teste 01 abre e mostra no menu principal o nome da pessoa logada.
Entretanto o Login Teste 2 e Teste 3 o botão de comando nem funciona.
Já vi, corrigi e tentei... e não acho o bendito erro.
2) Quando deixo de comentar na codificação do Frm_Login as linhas referente aos botões do comando de navegação (Bt_Nav_1, Bt_Nav_2 e Bt_Nav_3) para funcionem de acordo com usuário logado, apresenta o erro que não conseguiu localizar o campo "Bt_Nav_1 ou 2 ou 3" referido em sua expressão.
Abaixo a codificação inteira do form (tbm em anexo)
Option Compare Database
Private Sub Bt_Login_Click()
'Crio a variavel Nivel usuário
Dim NivelUsuario As Integer
'Crio a variavel TempSenha que será a senha temporária dada ao novo usuário
Dim TempSenha As String
'Crio a variavel ID
Dim ID As Integer
'Crio a variavel paara Usuário atual do form menu principal
Dim UsuarioTemp As String
If IsNull(Me.txt_Usuario) Then
MsgBox "Entre com nome do usuário.", vbInformation, "Nome do Usuário Necessário"
Me.txt_Usuario.SetFocus
ElseIf IsNull(Me.txt_Senha) Then
MsgBox "Digite a senha.", vbInformation, "Senha Necessária"
Me.txt_Senha.SetFocus
Else
' Nome do usuario/Tbl Usuario, Tbl Usuario, Nome do usuario/Tabl Usuario /Nome campo usuario Form
If (IsNull(DLookup("Nome_Usuario", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'"))) Or _
IsNull(DLookup("Senha_Usuario", "Tbl_Usuario", "Senha_Usuario='" & Me.txt_Senha.Value & "'")) Then
' Acima = Senha do usuario/Tbl Usuario, Tbl Usuario, Senha do usuario/Tabl Usuario /Nome campo senha do usuario Form
MsgBox "Nome do usuário ou senha errados.", vbInformation, "Acesso negado"
Me.txt_Usuario = ""
Me.txt_Senha = ""
Me.txt_Usuario.SetFocus
Else
'Uso a variavel NivelUsuario
NivelUsuario = DLookup("[Nivel_Usuario]", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel TempSenha
TempSenha = DLookup("[Senha_Usuario]", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel ID
ID = DLookup("Id_Usuario", "Tbl_Usuario", "Nome_Usuario='" & Me.txt_Usuario.Value & "'")
'Uso a variavel UsuárioTemp
UsuarioTemp = Me.txt_Usuario
If (TempSenha = "Senha_Usuario") Then
DoCmd.OpenForm "Frm_Cad_Usuario", , , "[Id_Usuario]=" & ID
Else
'Função usuario logado Administrador
If NivelUsuario = 1 Then
MsgBox "Acesso permitido", vbInformation, "Autenticação efetuada com sucesso"
DoCmd.OpenForm "Frm_MenuInicial"
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
Forms![Frm_MenuInicial]![Bt_Nav_1].enable = True
Forms![Frm_MenuInicial]![Bt_Nav_2].enable = True
Forms![Frm_MenuInicial]![Bt_Nav_3].enable = True
'Função usuario logado usuário
ElseIf NivelUsuario = 2 Then
DoCmd.OpenForm "Frm_MenuInicial"
'Coloca nome usuario logado no form
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
'Habiliata botões de navegação conforme a função do usuario logado
' Forms![Frm_MenuInicial]![Bt_Nav_1].enable = True
' Forms![Frm_MenuInicial]![Bt_Nav_2].enable = True
' Forms![Frm_MenuInicial]![Bt_Nav_3].enable = True
'Função usuario logado Teste
If NivelUsuario = 3 Then
MsgBox "Acesso permitido", vbInformation, "Autenticação efetuada com sucesso"
DoCmd.OpenForm "Frm_MenuInicial"
'Coloca nome usuario logado no form
Forms![Frm_MenuInicial]![Txt_Usuario_Atual] = UCase(UsuarioTemp)
'Habiliata botões de navegação conforme a função do usuario logado
' Forms![Frm_MenuInicial]![Bt_Nav_1].enable = False
' Forms![Frm_MenuInicial]![Bt_Nav_2].enable = False
' Forms![Frm_MenuInicial]![Bt_Nav_3].enable = False
End If
End If
End If
End If
End If
End Sub
'Private Sub Form_Load()
' DoCmd.ShowToolbar "Ribbon", acToolbarNo
'End Sub
Private Sub bt_close_Click()
DoCmd.Quit
End Sub
Private Sub bt_CriarConta_Click()
DoCmd.Close acForm, "Frm_Login"
DoCmd.OpenForm "Frm_Novo_Usuario"
End Sub
Private Sub sl_ExibirSenha_AfterUpdate()
' exibir senha
If sl_ExibirSenha = True Then
txt_Senha.InputMask = ""
Else
txt_Senha.InputMask = "Senha_Usuario"
End If
Alguma ideia de como prosseguir?
Obrigado.
End Sub
- Anexos
- TesteLogin 01.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (92 Kb) Baixado 33 vez(es)