o usuário está sendo identificado ao logar na rede (windows). essa identificação se dá pelo exemplo deste fórum "mostra usuário logado e Estação de trabalho", então há um campo com a informação idêntica na tbl de usuários. então, eu tenho até um exemplo mas não está funcionando não sei porque... veja abaixo:
--------------------------------------------módulo:
'Option Compare Database
'Pega o id do Usuario logado na máquina
Public Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Public Function fUsuario() As String
Dim lngResposta As Long
Dim bytContador As Byte
Dim strUsr As String '* 17
fUsuario = ""
strUsr = String(17, 0)
lngResposta = GetUserName(strUsr, 16)
For bytContador = 1 To 16
If Mid(strUsr, bytContador, 1) <> Chr(0) Then
fUsuario = fUsuario & Mid(strUsr, bytContador, 1)
End If
Next bytContador
End Function
-------------------------------------no formulário:
Private Sub Form_Load()
Dim usr As String
Dim rst As Recordset
'Dim perfil As Integer
usr = fUsuario()
Set dbBancoDados = CurrentDb
'Abre tabela Principal
Set rst = dbBancoDados.OpenRecordset("Tbl de Analistas", dbOpenTable)
globalPerfil = 66
While Not rst.EOF
If rst![matricula] = usr Then
'perfil = rst![perfil]
globalPerfil = rst![perfil]
rst.MoveLast
End If
rst.MoveNext
Wend
Select Case globalPerfil
Case 1
BotãoCAD.Enabled = False
BotãoSIC.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 2
BotãoFC.Enabled = False
BotãoSIC.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 3
BotãoFC.Enabled = False
BotãoCAD.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 4
BotãoSIC.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 5
BotãoCAD.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 6
BotãoFC.Enabled = False
Comando16.Enabled = False
Comando17.Enabled = False
Case 66
MsgBox "Este aplicativo é de uso exclusivo. Caso na sua atividade seja necessário o uso " & _
"desta Ferramenta, favor entrar em contato com o Gestor", vbCritical, "Aviso ao Usuário"
Application.Quit acQuitPrompt
End Select
End Sub