Necesito poner el nombre de Usuario en en Formulario.

Resulta que "Creé" una BD en Acccess con la ayuda de genios como tu! Yo en principio había generado un Form Login con el método Args y con ello podía obtener el nombre del usuario conectado y ponerlo en en formulario. Luego, encontré una "Auditoria" para controlar los cambios que se hacen pero para utilizarlo debo utilizar otro "Login" y hasta allí llegue... Me estoy quemando la cabeza viendo video y tutoriales pero nada... Te pongo aquí el código que utilizo ahora y me enseñas como obtener la variable global, para ponder usarla luego o si se te ocurre otra cosa también por favor...

Private intentos As Integer

Sub EntroAlSistema()
If IsNull(Forms!Clave.StrClave) Then
MsgBox "Debe incluir una Contraseña", vbInformation, "ATENCION"
Forms!Clave.StrClave.SetFocus
Exit Sub
Else
Call Controla(Form_Clave, Forms!Clave.StrClave)
If Autorizado Then
DoCmd.Close acForm, Form_Clave.Name
End If
End If
End Sub
Sub Controla(FrmClave As Access.Form, CpoContraseña As Access.control)
If Not IsNull(CpoContraseña) Then
intentos = intentos + 1
QuienEntro = Nz(DLookup("[Nombre]", "TUsuarios", "Contraseña= '" & CpoContraseña.Value & "'"), "No Esta")
If QuienEntro = "No Esta" Then
FrmClave.Caption = "NO EXISTE EL USUARIO. ""lleva"" " & intentos & " de 3 Intentos"
CpoContraseña.Value = vbNullString
CpoContraseña.SetFocus
If intentos = 3 Then
DoCmd.SetWarnings False
FrmClave.Caption = "todos los Intentos fueron errados..."
MsgBox "Disculpe Ud supero el numero de intentos", vbInformation, "ATENCION"
DoCmd.Quit
End If
Exit Sub
End If
Autorizado = True
Else
MsgBox "Disculpe no esta autorizado", vbCritical, "ATENCION"
DoCmd.Quit
End If
End Sub

2 respuestas

Respuesta
1

No aparece definida la variable 'QuienEntro' y podría ser útil reutilizarla (se adapta a la necesidad sin apenas modificar lo ya programado), si está definida en otro sitio, se debería eliminar esa definición.

En cualquier modulo independiente que actualmente exista, en su cabecera y bajo la línea (suele aparecer por defecto) 'Option Compare Database' se añade otra:

Option Compare Database
Public QuienEntro As String

Según el código publicado, esa variable recibirá el nombre del usuario al que se autoriza o el valor 'no está'.

Con la excepción de que se le cambie el valor (QuienEntro = "cualquier cosa") estará disponible durante la vida útil de esa sesión de trabajo.

Normalmente se suelen crear dos variables de este tipo, una para conocer y guardar el nombre o el ID y otra para conocer su nivel de autorización (si existen varios niveles).

Respuesta

Lo que yo haría es:

1.- crear una variable global en algun modulo Dim Global Usr as string  y también DIM Global Psw as String

2.- Haría un formulario llamado "Login" que tenga un campo Usuario y Otro Contraseña.

3.- Crear una tabla Usuarios con los campos (Usuario, Contraseña, Inicio) por lo menos

4.- En el formulario despues de actualizar Contraseña, consultas la tabla Usuarios para verificar que el usuario y la conhtraseña coinciden con la tabla, si coinciden entonces almacenas el usuario en la variable Usr y este valor lo puedes mostrar en cualquier formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas