Para conocer cuál es el usuario que ha iniciado una sesión en Access existen varias formas. En este post se exponen tres:

1. Con las variables de Entorno

Function DameUsuarioSencilla() As String
‘Utilizando Variables de entorno
DameUsuarioSencilla = Environ(”USERNAME”)
End Function

2. Mediante API

Option Explicit
Private Declare Function apiGetUserName Lib “advapi32.dll” Alias “GetUserNameA” (ByVal lpBuffer As String, nSize As Long) As Long
Function DameUsuarioApi() As String
‘Utilizando API de Windows
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
DameUsuarioApi = Left$(strUserName, lngLen – 1)
Else
DameUsuarioApi = “Incapaz de detectar usuario.”
End If
End Function

3. Utilizando Windows Script Host

Function DameNombreUsuarioWSH() As String
‘Dos lineas y me devuelve el nombre del PC y del usuario Activo
‘Mas facil, imposible
‘Buho Junio 2003

Dim ObjetoRed As Object
Set ObjetoRed = CreateObject(”WScript.Network”)
MsgBox “Nombre del PC en Red : ” & ObjetoRed.ComputerName & vbCrLf & “Usuario: ” & ObjetoRed.UserName, vbInformation, “Aviso”

DameNombreUsuarioWSH = ObjetoRed.UserName
Set ObjetoRed = Nothing
End Function

Fuente: Foro de access y vba

Leave a Reply