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
Super util, muy agradecido.
Gracias.
Iveh6SBBDJ