Problema con propiedades de algunos objetos en un formulario Access
Llevo varios días trabajando en una aplicación Access para el control de varias actividades. Y he llegado a un punto en el que no puedo avanzar.
Hay un formulario de login al entrar en la página con la siguiente estructura:
Al apretar el botón Enter corre el siguiente código (esta escrita en un modulo distinto para poder guardar la variable "category" para futuros usos):
Public category as string Public Sub Category_User() Dim pass As String If Nz(Form_Login.TxtUser, "") = "" Then MsgBox "User Field empty, please, enter USER", vbInformation, "USER" Form_Login.TxtUser.SetFocus ElseIf Nz(Form_Login.TxtPASSWORD, "") = "" Then MsgBox "Password Field empty, please, enter PASSWORD", vbInformation, "PASSWORD" Form_Login.TxtPASSWORD.SetFocus Else ' Encontrar la contraseña en la tabla USERS If Nz(DLookup("[Password]", "[Users]", "USER='" & Form_Login![TxtUser] &"'"), "") <> "" Then pass = DLookup("Password", "Users", "USER='" & Form_Login![TxtUser] &"'") End If 'Comprobamos que la contraseña sea valida If pass <> Form_Login.TxtPASSWORD Then MsgBox "Wrong Password, try again", vbCritical, "OK" Else category = DLookup("[Category]", "[Users]", "User='" & Form_Login![TxtUser] & "'") MsgBox (category) If category = 1 Then Call Button_Enabled ElseIf category = 2 Then Call Button_Enabled Else Call Button_Disabled End If DoCmd.OpenForm "Excursions" End Sub
Las rutinas Button_Enabled y Button_Disabled tienen el siguiente codigo:
Public Sub Button_Enabled() Form_Escape_in_Blue_Wednesday.Button_Add_Comment.Enabled = True Form_Escape_in_Blue_Wednesday.Button_Block.Enabled = True Form_Escape_in_Blue_Wednesday.Button_Unblock.Enabled = True End Sub _____________________________________________________________ Public Sub Button_Disabled() Form_Escape_in_Blue_Wednesday.Button_Add_Comment.Enabled = False Form_Escape_in_Blue_Wednesday.Button_Block.Enabled = False Form_Escape_in_Blue_Wednesday.Button_Unblock.Enabled = False End Sub
Esto funciona a la perfeccion. Se me abre el formulario "Excursions" y todo parece funcionar de maravilla. Pero desde este mismo formulario "Excursions" accedo al formulario "Escape_in_Blue_Wednesday" apretando un boton
Public Sub Open_Wednesday() DoCmd.OpenForm "escape_in_blue_wednesday" End Sub
Y El problema es que cuando abro el formulario "Escape_in_Blue_Wednesday" con dicho boton, parece que no se aplican los cambios que habia pedido en el Sub Category_User. Pero cierro el formulario, lo vuelvo abrir con el mismo boton y funciona. Parece que no funciona solo la primera vez que abro el formulario.
Incluso he aplicado otra rutina manteniendo la variable "category" para que al abrir el formulario "escape_in_blue_wednesday" vuelva a comprobar el valor de dicha variable, y dependiendo de cual sea el valor habilite o deshabilite ciertos botones del formulario, y más de lo mismo. Ninguno de los botones de dicho formulario cambia con la primera apertura. Siempre tengo que cerrar el formulario, volverlo a abrir y entonces funciona a la perfección.
No considero lo opción de crear una macro que abra, cierre y vuelva a abrir el formulario. No lo he probado, pero no es una solución.
He probado con el Macro builder y más de lo mismo. He puesto msgbox en el código para saber que mantiene las variables y todo va bien. El único problema es que tengo que cerrar y volver a abrir el formulario y no entiendo por que.
¿Alguna idea?