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?
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
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
1 comentario
para identificar nombre de equipocódigo interno en funciones =Environ("computername") código de previsualización =Entorno("computername")para identificar nombre de usuariocódigo interno en funciones =Environ("username") código de previsualización =Entorno("username") - Jose Montero