Obtener usuario Windows-

Necesito obtener el usuario Windows; para utilizar en mi aplicación access; específicamente en las consultas.
¿Existe alguna función o algo parecido para obtenerla?

2 Respuestas

Respuesta
1
Claro utilizando API. Coloca este código en un modulo.
************************
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Public Const MAX_COMPUTERNAME_LENGTH = 255
Public Function ComputerName() As String
'Devuelve el nombre del equipo actual
Dim sComputerName As String
Dim ComputerNameLength As Long
sComputerName = String(MAX_COMPUTERNAME_LENGTH + 1, 0)
ComputerNameLength = MAX_COMPUTERNAME_LENGTH
Call GetComputerName(sComputerName, ComputerNameLength)
ComputerName = Mid(sComputerName, 1, ComputerNameLength)
End Function
***************************
La función ComputerName, TE DEVOLVERA EL NOMBRE.
Ahora desde un formulario o donde lo necesites, lo llamas de esta manera.
******************
NomPC = ComputerName
******************
Aquí NomPC, se supone es una variable, pero igual mandala a una caja de texto.
Aho el problema seria que tienes consultas FÍSICAS (objetos consultas)...
Porque tocaría que modificas tu consulta con esta linea:
currentdb.QueryDefs("NombreConsulta").SQL = NuevaConsulta
NuevaConsulta sertia la sentencia SQL, que genera la consulta..
Pero te recomendaría que hicieras las consultas desde programación.
Att:telemaco
Hola telemaco.
Ya vi esta ejemplo que le habías respondido a otra persona. Me parece muy interesante, pero lo que necesito es el usuario de windows logueado. Este devuelve el nombre del equipo donde se ejecuta el API.
Otra vez:
Si disculpa, esta te servirá:
Esto lo colocas en el modulo:
***************************
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpbuffer As String, nSize As Long) As Long
'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 PARA LLAMARLO:
*************************
NomUSU = UsuarioActual
************************
ATT:telemaco
Respuesta

Para identificar nombre de equipo

Entorno("computername") o Environ("computername")

Para identificar nombre de usuario

Entorno("username") o Environ("username")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas