Parte 12 Creación de la Ventana de Administración de Usuarios P1

En esta parte del vídeo se creo la ventana para la administración de usuarios, el fin de esta ventana es crear usuarios para el ingreso al software. Existen varios tipos de roles de usuarios para eso al crear el usuario se selecciona el tipo, que pueden ser: Administrador, secretaria o vendedor. Estos son los tipos de roles que se manejaran pero también se creara una ventana para crear Tipos de Usuario así que se pueden crear los roles que se necesiten sin ningún limite.

En el load del formulario se carga la función de llenado de tipos de usuario y se pone el id de usuario a cero.

Private Sub Form_Load()
    Call LlenarTiposUsuario
    Id_UsuarioSeleccionado = 0
End Sub


OBSERVACIÓN

En el video cerca al minuto 8 cometí un error al llenar el combobox en su propiedad itemData en la imagen siguiente resalto el error:

El código ya corregido es el siguiente:

Sub LlenarTiposUsuario()
    Dim RecorsetTempo As New ADODB.Recordset
    
    Sql = "Select IdNivelUsuario, nombre_tipo From TiposUsuario Order By nombre_tipo ASC "
    
    Set RecorsetTempo = ConexionADO.Execute(Sql)
    
    If RecorsetTempo.RecordCount > 0 Then
       cmdTiposUsuarios.Clear
       i = 0   
       Do While Not RecorsetTempo.EOF
               cmdTiposUsuarios.AddItem RecorsetTempo("nombre_tipo")
               cmdTiposUsuarios.ItemData(i) = RecorsetTempo("IdNivelUsuario")
               RecorsetTempo.MoveNext
               i = i + 1
       Loop
       cmdTiposUsuarios.ListIndex = 0
    End If
    
End Sub

Observación se puede usar la forma anterior para asignarle un valor a itemData o puede usar la siguiente forma que es mas corta:

cmdTiposUsuarios.ItemData(cmdTiposUsuarios.NewIndex) = RecorsetTempo("IdNivelUsuario")

Usando cmdTiposUsuarios.NewIndex el mismo combo nos suministra el índice correspondiente.

FINAL DE LA OPSERVACIÓN


Se creo una variable a nivel de formulario que es donde se guarda el id del usuario:

Dim Id_UsuarioSeleccionado As Integer

Los procedimientos de habilitar y inhabilitar quedaron de la siguiente manera:

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
    cmdCambiarPassword.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
    If Id_UsuarioSeleccionado = 0 Then
       cmdCambiarPassword.Enabled = False
    Else
       cmdCambiarPassword.Enabled = True
    End If
End Sub

Si es un usuario nuevo Id_UsuarioSeleccionado = 0 entonces se deshabilita el botón de cambiar contraseña por que lógicamente no se le puede cambiar la contraseña a un usuario que no existe sino que apenas se esta creando.

El botón de cambio de password quedo de la siguiente manera:

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

Con el 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 = " & Id_UsuarioSeleccionado
       ConexionADO.Execute Sql
        
       MsgBox "Contraseña Cambiada con exito", vbInformation, "Guardar"
    End If
    
End Sub

Y para guardar el usuario se tiene en cuenta si ya existo o no existe la que determina esto es la variable  Id_UsuarioSeleccionado si esta en cero es un usuario nuevo sino es un usuario que se esta actualizando:

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
    
    If Id_UsuarioSeleccionado = 0 Then 'Si el usuario es nuevo guarda la contraseña
    
        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
    End If
    Call GuardarUsuario
End Sub
Sub GuardarUsuario()
    Dim Res As VbMsgBoxResult
    Dim Password As String
    
    IdNivelUsuario = cmdTiposUsuarios.ItemData(cmdTiposUsuarios.ListIndex)
       If Id_UsuarioSeleccionado = 0 Then 'Si el usuario es nuevo guarda la contraseña
          
          UltimoId = UltimoIdUsuario("tblUsuarios", "IdUsuario")
          Password = EncryptString("4mkiujn4", txtPassword.Text, 1)
                  
          Sql = "Insert Into tblusuarios (IdUsuario,usuario,password_us,nombres_apellidos,identificacion,IdNivelUsuario) " _
               & "Values (" & UltimoId & ", '" & txtUsuario.Text & "','" & Password & "','" & txtNombreApellido.Text & "', '" & txtIdentificacion.Text & "', " & IdNivelUsuario & " )"
       Else
          Res = MsgBox("¿Esta seguro de Actualizar los datos de Usuario?", vbYesNo, "Guardar")
          If Res = vbYes Then
             Sql = "Update tblUsuarios Set usuario = '" & txtUsuario.Text & "', nombres_apellidos = '" & txtNombreApellido.Text & "', Identificacion = '" & txtIdentificacion.Text & "', IdNivelUsuario = " & IdNivelUsuario & " Where IdUsuario = " & Id_UsuarioSeleccionado
          End If
       End If
       
       ConexionADO.Execute Sql
        
       MsgBox "Usuario Guardado", vbInformation, "Guardar"
       Call LimpiarControles
       cmdTiposUsuarios.SetFocus
End Sub

Después que se guarda un usuario se limpia el formulario:

Sub LimpiarControles()
    txtUsuario.Text = ""
    txtPassword.Text = ""
    txtConfirmarPassw.Text = ""
    txtIdentificacion.Text = ""
    txtNombreApellido.Text = ""
End Sub

Siguiente Lección Parte 13 Creación de la Ventana de Tipos de Usuario, uso del control MSHFlexGrid

 

 

Total Page Visits: 4601 - Today Page Visits: 2

Deja una respuesta