Como me puede respetar el usuario con el que se ingrea

Buen día tengo una base de datos en ella tengo una tabla que tiene los campos:
Usuario "se captura el nombre del usuario"
Contraseña "se captura la contraseña"
Tipo "se captura el tipo de usuario"
Tengo un formulario1 de inicio el cual me pide el usuario y la contraseña el cual me abre el formulario 2, en este formulario 1 tengo este código:
Option Compare Database
Option Explicit
Public tipodeusuario As String
Private Sub Comando4_Click()
Dim algo As String
Dim db As Database
Dim SqLline As String
Dim Result As Object
If Usuario = " " Or Contrasena = " " Then
    algo = MsgBox("Porfavor, complete todos los campos", 16, "Omision")
Else
SqLline = "select* from usuarios where Usuario = '" & Usuario & "'and Password = '" & Contrasena & "';"
Set db = CurrentDb()
Set Result = db.OpenRecordset(SqLline)
If Result.EOF And Result.BOF Then
    algo = MsgBox("El nombre de usuario o contraseña son incorrectos", 16, "Discrepancia")
Else
tipodeusuario = Result.tipo
DoCmd.OpenForm "Historial de servicios"
DoCmd.OpenForm "Acceso inicial"
DoCmd.Close
End If
Result.Close
db.Close
Set Result = Nothing
Set db = Nothing
End If
End Sub
En el formulario 2 tengo un cuadro de texto para que muestre el usuario actual, aquí me tendría que mostrar el usuario con el que ingrese si en cambio me muestra "Admin".
Después realice una pregunta por este medio y un ezperto me ayudo y me comento que necesitaba crear un modulo en el que declarara la variable global a la cual llamamos tipodeusuario la cual se encuentra en el código que puse anteriormente. Mi modulo queda así:
Option Compare Database
Option Explicit
Public tipodeusuario As String
tipodeusuario = tipo
En el formulario 2 tengo este código:
Option Compare Database
Option Explicit
Public tipodeusuario As String
tipodeusuario = valor
Ya con esto en el cuadro de texto en donde me salia "Admin" ahora me sale #¿Nombre? No se si la forma en la que estoy escribiendo la variable o el código este mal. Bueno espero me puedas ayudar ya que me estoy volviendo loco, te estaré agradecido infinitamente.
Jorge T.

3 respuestas

Respuesta
1
Módulo independiente (llamado mdlGlobales, por ejemplo)
Public strNombreUsuario As String
Formulario de password )te rehago el código porque lo veo demasiado "pesado" (utilizar un recordset) por un lado y "debil" por otro (el control de valores).
Private Sub Comando4_Click()
' Evaluación de que hay datos...
If Trim(Nz(Me!Usuario, "")) = "" Or Trim(Nz(Me!Contraseña, "")) = "" Then
  MsgBox "Faltan datos, vbCritical, "Aviso"
  Exit Sub
End If
' Evaluación de los propios datos
If DCount("*", "Usuarios", "Usuario = '" & Me!Usuario & "' And Password = '" & Me!Password & "'") = 0 Then
  MsgBox "Usuario o contraseña erróneos", vbCritical, "Aviso"
  Exit Sub
End If
'Asignación del valor
strNombreUsuario = Me!Usuario
DoCmd. OpenForm "Historial de servicios"
DoCmd. OpenForm "Acceso inicial"
DoCmd. Close
End Sub
En el segundo formulario puedes utilizar un pequeño truquillo para que te muestre el valor de la variable. Tu sabes que no puedes referenciar directamente la variable en un origen del control (Obtienes ¿Nombre?).
Eb el módulo publico dónde hemos declarado la variable global, añadimos esta función (tonta a más no poder pero muy práctica)
Public Function DevuelveNombreUsuario() As String
  DevuelveNombreUsuario = strNombreUsuario
End Function
Ahora vas al cuadro de texto dónde quieres mostrar el nombre del usuario actual y escribes, en la propiedad origen del control:
=DevuelveNombreUsuario()
Prueba y cuentas.
Respuesta
1
Para este tipo de entrada he creado una BD que está colgada en la sección DESCARGAS de mi página http://personales.ya.com/pachaweb/index.html
04/11/2010 morasin.Entrada con contraseña
Creo que te solventará perfectamente lo que quieres.
Una aperta.
Respuesta
1
Perdona por el retraso pero he estado de viaje. Yo suelo usar variables globales, para poder usarlas en cualquier sitio. Las reglas son:
- Declaralas con Global Variable as string (por ejemplo), en UN MODULO.
- Inicializalas por ejemplo con el evento al abrir de tu panel de control principal de la base de datos.
- Puedes usarlas en cualquier parte del código, que mantendrán su valor independientemente de si abres o cierras formularios (ssalvo aquel con el que las inicialices, claro)
Prueba y me dices. ¿Ok?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas