Senhores,
Resolvi o problema de login e senha para acessar o meu BD para cada usuário, porém eu gostaria de que todos os formulários onde há necessidade de colocar um usuário, ou solicitante, etc, que seja o usuário logado, para que ele não peça para fazer nada por outros. Eu já tenho a tabela usuários, como fazer isso? Tenho que criar tabelas temporárias? Lembrando o BD está dividido e várias pessoas acessarão ao mesmo tempo. Muito obrigado.
Para gerar o nível de acesso utilizei esses códigos:
Option Compare Database
Option Explicit
Dim NumIntentos As Integer
Private Sub CmdEntrar_Click()
Dim auxContraseña As String
Dim User As String
'Comprova-se que há dados na caixa de texto
If Nz(Me.Txtlogin.Value, "") = "" Then
MsgBox "Selecione um nome de Usuário", vbInformation, "ATENCION"
Me.Txtlogin.SetFocus
2 ElseIf Nz(Me.TxtPassword.Value, "") = "" Then
MsgBox "Digite a Senha do Usuário Selecionado", vbInformation, "ATENÇÃO"
Me.TxtPassword.SetFocus
Else
If Nz(DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin]), "") <> "" Then
auxContraseña = DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin])
End If
If auxContraseña <> Me.TxtPassword.Value Then
If NumIntentos = 10 Then
NumIntentos = NumIntentos - 1
MsgBox "A SENHA INTRODUZIDA ESTÁ INCORRETA" & vbCrLf & _
"Le quedan " & NumIntentos & " intentos" & vbCrLf & vbCrLf & _
"Por favor, insira a senha correta", vbExclamation, "INDRODUÇÃO INCORRETA"
Me.TxtPassword.Value = ""
Me.TxtPassword.SetFocus
Else
MsgBox "VOCE DIGITOU A SENHA INCORRETA", vbCritical, "ATENÇÃO."
GoTo 2
DoCmd.Close acForm, Me.Name 'Fecha-se o acesso
End If
Else
If DLookup("Id_User", "Usuarios", "Id_user=" & Me![Txtlogin]) = 1 Then
MsgBox "Você acessa esse sistema como Um Administrador", vbInformation, "BEM VINDO AO CONTROLE ABSOLUTA"
Call Admin
Else
User = DLookup("Login", "Usuarios", "Id_user=" & Me![Txtlogin])
MsgBox "Você está logando como" & " " & User, vbInformation, "BEM VINDO AO CONTROLE ABSOLUTA"
Call Usuar
End If
'DoCmd.OpenForm stDocName, , , stLinkCriteria 'Abrirá o formulário correspondente
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
End If
End Sub
Function Admin()
On Error GoTo Admin_Err
DoCmd.OpenForm "SUB MENU-CADASTRO", acNormal, "", "", , acNormal
Admin_Exit:
Exit Function
Admin_Err:
MsgBox Error$
Resume Admin_Exit
End Function
Function Usuar()
On Error GoTo Usuar_Err
DoCmd.OpenForm "SUB-MENU FORMULÁRIOS", acNormal, "", "", , acNormal
Usuar_Exit:
Exit Function
Usuar_Err:
MsgBox Error$
Resume Usuar_Exit
End Function
Resolvi o problema de login e senha para acessar o meu BD para cada usuário, porém eu gostaria de que todos os formulários onde há necessidade de colocar um usuário, ou solicitante, etc, que seja o usuário logado, para que ele não peça para fazer nada por outros. Eu já tenho a tabela usuários, como fazer isso? Tenho que criar tabelas temporárias? Lembrando o BD está dividido e várias pessoas acessarão ao mesmo tempo. Muito obrigado.
Para gerar o nível de acesso utilizei esses códigos:
Option Compare Database
Option Explicit
Dim NumIntentos As Integer
Private Sub CmdEntrar_Click()
Dim auxContraseña As String
Dim User As String
'Comprova-se que há dados na caixa de texto
If Nz(Me.Txtlogin.Value, "") = "" Then
MsgBox "Selecione um nome de Usuário", vbInformation, "ATENCION"
Me.Txtlogin.SetFocus
2 ElseIf Nz(Me.TxtPassword.Value, "") = "" Then
MsgBox "Digite a Senha do Usuário Selecionado", vbInformation, "ATENÇÃO"
Me.TxtPassword.SetFocus
Else
If Nz(DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin]), "") <> "" Then
auxContraseña = DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin])
End If
If auxContraseña <> Me.TxtPassword.Value Then
If NumIntentos = 10 Then
NumIntentos = NumIntentos - 1
MsgBox "A SENHA INTRODUZIDA ESTÁ INCORRETA" & vbCrLf & _
"Le quedan " & NumIntentos & " intentos" & vbCrLf & vbCrLf & _
"Por favor, insira a senha correta", vbExclamation, "INDRODUÇÃO INCORRETA"
Me.TxtPassword.Value = ""
Me.TxtPassword.SetFocus
Else
MsgBox "VOCE DIGITOU A SENHA INCORRETA", vbCritical, "ATENÇÃO."
GoTo 2
DoCmd.Close acForm, Me.Name 'Fecha-se o acesso
End If
Else
If DLookup("Id_User", "Usuarios", "Id_user=" & Me![Txtlogin]) = 1 Then
MsgBox "Você acessa esse sistema como Um Administrador", vbInformation, "BEM VINDO AO CONTROLE ABSOLUTA"
Call Admin
Else
User = DLookup("Login", "Usuarios", "Id_user=" & Me![Txtlogin])
MsgBox "Você está logando como" & " " & User, vbInformation, "BEM VINDO AO CONTROLE ABSOLUTA"
Call Usuar
End If
'DoCmd.OpenForm stDocName, , , stLinkCriteria 'Abrirá o formulário correspondente
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
End If
End Sub
Function Admin()
On Error GoTo Admin_Err
DoCmd.OpenForm "SUB MENU-CADASTRO", acNormal, "", "", , acNormal
Admin_Exit:
Exit Function
Admin_Err:
MsgBox Error$
Resume Admin_Exit
End Function
Function Usuar()
On Error GoTo Usuar_Err
DoCmd.OpenForm "SUB-MENU FORMULÁRIOS", acNormal, "", "", , acNormal
Usuar_Exit:
Exit Function
Usuar_Err:
MsgBox Error$
Resume Usuar_Exit
End Function