RE:Perdida de valor en variable
Hola Vicente:
Para empezar hay que tener en cuenta que todas las variables pierden su valor al cerrar la base de datos, incluso las Globales (esto es lógico), pero mientras la mdb esté abierta o no se produzca una interrupción por un error, no hay problema.
Ahora vamos a ver si lo he entendido, el formulario que tu llamas de Seguridad, supongo que será el formulario de Inicio con 2 cuadros de texto, uno para el DNI y el otro para la Contraseña (lo usual es Nombre de Usuario y Contraseña, pero es sigual). Cuando el usuario teclea su DNI y su Contraseña, se cierra este formulario de Seguridad y se abre el Principal ¿ correcto ?. Pués bien, ANTES de que se cierre el Formulario de Seguridad le tienes que dar valor a la variable Global para que se quede disponible en cualquier parte de la base.
Creas el Módulo como te dije y lo grabas, luego en el Procedimiento de Evento "Después de actualizar" del cuadro de texto Codigo (supongo que Codigo será la contraseña o el DNI, debería ser el DNI porque no es razonable mostrar después la Contraseña que cualquiera podría ver), pones:
Private Sub txtCodigo_AfterUpdate()
NombreVariable = Me.Codigo
End Sub
Ya se puede cerrar este formulario de seguridad. Ahora en el Formulario Principal pones un cuadro de texto ya sea "Independiente" o con Origen del Control y en su Evento Al Cargar pones:
Private Sub Form_Load()
Me.txtCodigoUsuario = NombreVariable
End Sub
Y este cuadro de texto (yo lo llamo txtCodigoUsuario) debe tomar el valor que antes de cerrarse el Form de Seguridad le dimos a la variable, aunque me parece a mi que hay algo más que no nos has contado, ya nos dirás.
Saludos
Enrique