Cómo saber el usuario y el nombre del PC.

Antonio de Abogados-MF nos envía este pequeño ejemplo de Microsoft Access que nos va a servir para recuperar el nombre del usuario y del PC que está usando la base de datos. Parte del código se ha extraído de unos ejemplos de internet de Emilio creado hace ya algunos años pero sigue siendo válido a día de hoy.

Antonio:

En muchas ocasiones cuando estamos creando nuestra aplicación en Access o estamos pensando en generar una nueva, se nos plantea la forma de cómo saber qué usuario del PC ha entrado a nuestra aplicación o incluso, saber el nombre del equipo en red cuando hay varios usuarios conectados a nuestra aplicación en red.

En este sencillo ejemplo os he puesto varias formas de cómo averiguar el nombre del Usuario (la más utilizada es Environ(«Username»)) y una de cómo averiguar el nombre del equipo en red.

Utiliza la que más te guste.

Pegamos este código en un módulo:

Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpbuffer As String, nSize As Long) As Long

'Por Emilio:
'***************************************************************************
'* Devuelve el nombre del PC en que se está ejecutando la aplicación
'* uso strNombre = NombrePC
'* ESH 18/12/02 15:06
'***************************************************************************

Public Function NombrePC()
    Dim WS As Object
    Set WS = CreateObject("WScript.network")
    NombrePC = WS.ComputerName
    Set WS = Nothing
End Function            ' NombrePC


'***************************************************************************
'* Devuelve el nombre del usurio con que se ha iniciado la sesión
'* uso strNombre = NombreUsuario
'* ESH 18/12/02 15:10
'***************************************************************************

Public Function NombreUsuario()
    Dim WS As Object
    Set WS = CreateObject("WScript.network")
    NombreUsuario = WS.UserName
    Set WS = Nothing
End Function            ' NombreUsuario


'Esta función devuelve el nombre del Usuario
Public Function UsuarioActual() As String
    Dim sBuffer As String
    Dim lSize As Long
    Dim sUsuario As String
    
    sBuffer = Space$(260)
    lSize = Len(sBuffer)
    Call GetUserName(sBuffer, lSize)
    If lSize > 0 Then
        sUsuario = Left$(sBuffer, lSize)
        'Quitarle el CHR$(0) del final...
        lSize = InStr(sUsuario, Chr$(0))
    If lSize Then
        sUsuario = Left$(sUsuario, lSize - 1)
        End If
    Else
        sUsuario = ""
    End If
    
    UsuarioActual = sUsuario
End Function

Y luego utilizamos un formulario con algunas etiquetas de texto donde mostrar dicha información que recuperamos llamando a los procedimientos del módulo.

Private Sub Form_Current()
    Me.MiNombre.Caption = "Usuario: " & NombreUsuario
    Me.Red.Caption = "Red Equipo: " & NombrePC
    Me.UsuarioN.Caption = "Usuario: " & Environ("Username")
    Me.OtroUsuario.Caption = "Otro Usuario: " & UsuarioActual
End Sub

Lo que hace es que al cargar el formulario asigna en las etiquetas de texto el nombre

3 comentarios

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.