En esta parte se enseño como traer datos desde variables globales, estos valores se guardaron al iniciar sesión en la ventana de Login se tomas todos los datos del usuarios y se guardan en variables globales.
En el modulo conexión se crearon las siguientes variables:
'----------- Variables de Usuario Global Glo_UsuarioLogin As String Global Glo_NombreUsuario As String Global Glo_IdentificacionUs As String Global Glo_IdUsuario As Integer
En El modulo mod_consultas la función de login se llenaron las variables globales con los datos del usuario:
Function Validar_Usuario(usuario As String, Password As String) As Boolean Dim RecorsetTemp As New ADODB.Recordset Dim Sql As String Dim Clave As String Clave = EncryptString("4mkiujn4", Password, 1) Sql = "Select * from tblUsuarios where usuario = '" & usuario & "' and password_us = '" & Clave & "'" RecorsetTemp.Open Sql, ConexionADO If RecorsetTemp.RecordCount > 0 Then Glo_IdUsuario = RecorsetTemp("IdUsuario") Glo_UsuarioLogin = RecorsetTemp("usuario") Glo_NombreUsuario = RecorsetTemp("nombres_apellidos") Glo_IdentificacionUs = RecorsetTemp("Identificacion") Validar_Usuario = True Else Validar_Usuario = False End If End Function
En la ventana de frmPerfilUsuario se creo el sub procedimiento con que se cargan los datos del usuario en el formulario con las variables globales:
Sub LlenarDatosUsuario() txtUsuario.Text = Glo_UsuarioLogin txtIdentificacion.Text = Glo_IdentificacionUs txtNombreApellido.Text = Glo_NombreUsuario End Sub
Y desde el Load este mismo formulario se llama a esa funcion de llenar:
Private Sub Form_Load() Call LlenarDatosUsuario Call InabilitarControles End Sub
De esta manera cuando el usuario abre el formulario de Perfil de Usuario se llenan automáticamente los datos del usuario en el formulario.
Se crearon 2 sub procedimientos uno para habilitar los controles cuando se de clic al botón de modificar y otra inhabilitar cuando se cargar el formulario y cuando se guardan los datos:
Sub InabilitarControles() txtUsuario.Enabled = False txtPassword.Enabled = False txtConfirmarPassw.Enabled = False txtIdentificacion.Enabled = False txtNombreApellido.Enabled = False cmdCambiarPassword.Enabled = False cmdGuardar.Enabled = False imgMostrarPassw.Enabled = False End Sub Sub HabilitarControles() txtUsuario.Enabled = True txtPassword.Enabled = True txtConfirmarPassw.Enabled = True txtIdentificacion.Enabled = True txtNombreApellido.Enabled = True cmdCambiarPassword.Enabled = True imgMostrarPassw.Enabled = True cmdGuardar.Enabled = True cmdModificar.Enabled = False End Sub
Antes de actualizar se hacen las siguientes validaciones en el botón de guardar:
Private Sub cmdGuardar_Click() If txtUsuario.Text = "" Then MsgBox "Debe llenar el Campo Usuario", vbExclamation, "Error" txtUsuario.SetFocus Exit Sub End If If txtIdentificacion.Text = "" Then MsgBox "Debe llenar el Campo Identificación", vbExclamation, "Error" txtIdentificacion.SetFocus Exit Sub End If If txtNombreApellido.Text = "" Then MsgBox "Debe llenar el Campo Nombres y Apellidos", vbExclamation, "Error" txtNombreApellido.SetFocus Exit Sub End If Call GuardarUsuario End Sub
Lo siguientes es actualizar los datos del usuario, para eso se creo un sub procedimiento que actualiza los datos del usuario:
Sub GuardarUsuario() Dim Res As VbMsgBoxResult Res = MsgBox("¿Esta seguro de modificar los datos de Usuario?", vbYesNo, "Guardar") If Res = vbYes Then Sql = "Update tblUsuarios Set usuario = '" & txtUsuario.Text & "', nombres_apellidos = '" & txtNombreApellido.Text & "', Identificacion = '" & txtIdentificacion.Text & "' Where IdUsuario = " & Glo_IdUsuario ConexionADO.Execute Sql Glo_UsuarioLogin = txtUsuario.Text Glo_IdentificacionUs = txtIdentificacion.Text Glo_NombreUsuario = txtNombreApellido.Text MsgBox "Usuario Guardado", vbInformation, "Guardar" End If End Sub
Se coloco un boton de Cambiar contraseña para que el usuario tenga mas clara la manera de cambiar su contraseña. Se creo un sub procedimiento para este fin. Este es el código del botón Cambiar Contraseña:
Private Sub cmdCambiarPassword_Click() If txtPassword.Text = "" Then MsgBox "Debe llenar el Campo Contraseña", vbExclamation, "Error" txtPassword.SetFocus Exit Sub End If If txtConfirmarPassw.Text = "" Then MsgBox "Debe llenar el Campo Confirmar Contraseña", vbExclamation, "Error" txtConfirmarPassw.SetFocus Exit Sub End If If Len(txtPassword.Text) < 5 Then MsgBox "Las contraseña debe tener como minimo 5 carácteres", vbExclamation, "Error" txtPassword.SetFocus Exit Sub End If If txtPassword.Text <> txtConfirmarPassw.Text Then MsgBox "Las contraseña no coinciden verifique", vbExclamation, "Error" txtPassword.SetFocus Exit Sub End If Call CambiarPassword End Sub
Y este es el código del sub procedimiento de CambiarPassword
Sub CambiarPassword() Dim Res As VbMsgBoxResult Res = MsgBox("¿Esta seguro de la contraseña?", vbYesNo, "Guardar") If Res = vbYes Then Clave = EncryptString("4mkiujn4", txtPassword.Text, 1) Sql = "UPDATE tblUsuarios as us SET us.password_us='" & Clave & "' Where us.IdUsuario = " & Glo_IdUsuario ConexionADO.Execute Sql MsgBox "Contraseña Cambiada con exito", vbInformation, "Guardar" End If End Sub
Y por último se coloco una imagen al lado del cuadro de texto contraseña para que al dar clic sostenido mostrara la contraseña y si soltamos el clic del mouse vuelve a ocultar la contraseña, esto se hizo con el siguiente código:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) txtPassword.PasswordChar = "" End Sub Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) txtPassword.PasswordChar = "*" End Sub
Cualquier duda o inquietud dejen sus comentario:
Siguiente Lección Parte 12 Creación de la Ventana de Administración de Usuarios P1