Access - Cambio de contraseña formulario

 
Vista:
sin imagen de perfil

Cambio de contraseña formulario

Publicado por Alejandro (3 intervenciones) el 01/03/2016 20:14:58
Hola a todos, estoy necesitando una gran ayuda de este foro. tengo una aplicación realizada en access y lo que busco es que el usuario pueda cambiar su contraseña.
Tengo:

Tabla: Usuarios
Campos: Id_Usuario
Nombre_Usuario
Usuario
Pass

Y el formulario para el cambio de password esta compuesto de la siguiente manera:

Txtus (corresponde a Usuario)
Actpass (corresponde al pass actual)
Newpass (sería el Nuevo pass que quiere poner el usuario)

no le encuentro la vuelta con el código Vba para que al clickear el boton guardar realice lo siguiente:

con lo cargado en TXTus y Actpass verifique en la tabla que están bien los datos, y si son correctos guarde el nuevo password escrito en Newpass. si alguno de los datos es incorrectos que pida colocar los datos correctos.

alguien me podría ayudar??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Cambio de contraseña formulario

Publicado por Alejandro (3 intervenciones) el 03/03/2016 15:06:48
Hola a todos, perdón por la molestia, estoy complicadisimo con esto y no puedo avanzar, soy novato y estoy totalmente frenado con esto, alguien sabe como lo puedo solucionar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambio de contraseña formulario

Publicado por Enrique Heliodoro (1664 intervenciones) el 03/03/2016 15:30:40
Siempre se suele verificar la nueva contraseña (para que el usuario se reafirme) y el cambio mas elemental es:

.- Se verifica que ambos campos (el de la nueva contraseña y su verificación sean lo mismo)
Si no son iguales se le advierte y se le permite corregir

.- Con un DLookup se verifica que el usuario exista (y se trae su contraseña) que se verificara si es igual a la contraseña actual
Si no se corresponden usuario y contraseña guardados con los que figuran en la toma de datos, si no coinciden se le advierte

Si lo anterior es correcto:

Se crea una consulta de selección sobre la tabla usuarios, como condición el actual usuario (Txtus) es decir se referencia al usuario en la condición de la consulta.
Se cambia a consulta de ACTUALIZACION (y como previamente ya se confirmo que el usuario es quien dice ser), en la línea 'Actualizar A:' se pone el campo de la nueva contraseña.

Se guarda esa consulta (para usos posteriores) y se verifica que funciona.

Tras la toma de datos y su verificación, simplemente con una macro se ejecuta la consulta.

Cuando pase el tiempo y la experiencia sea mayor, nada impide copiar la SQL de esa consulta y manejarla de forma diferente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambio de contraseña formulario

Publicado por Alejandro (3 intervenciones) el 03/03/2016 15:52:39
muy bueno!!, gracias por el comentario, voy a revisar en base a esta info donde estoy fallando en el código, ya que mas o menos había armado algo similar a lo comentado pero no me funciona.
Lo que tengo en el código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Comando25_Click()
Dim Changepass As Integer
    If IsNull(Me.Actpass) Then
            MsgBox "Por favor ingrese su password actual", vbInformation, "Password Actual Requerido"
            Me.Actpass.SetFocus
        ElseIf IsNull(Me.Txtus) Then
            MsgBox "Por favor ingrese su Usuario", vbInformation, "Usuario Requerido"
            Me.Newpass.SetFocus
        ElseIf IsNull(Me.Newpass) Then
            MsgBox "Por favor ingrese su nuevo password", vbInformation, "Nuevo Password Requerido"
            Me.Newpass.SetFocus
        End If
If DLookup("[Usuario]", "[Usuarios]", "Usuario=" & Txtus) And DLookup("[Pass]", "[Usuarios]", "Pass=" & Actpass) Then
            [Usuarios]![Pass] = Newpass
        End If
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambio de contraseña formulario

Publicado por Enrique Heliodoro (1664 intervenciones) el 03/03/2016 16:59:25
Dos DLookup me parecen innecesarios...

Tenemos al usuario (que estará o no entre los admitidos) por lo que si ejecutamos uno solo para obtener la contraseña del usuario, se podrán dar varias causisticas:

Que el usuario NO exista en el conjunto (devolverá un NULL)
Que exista pero la contraseña que devuelve es diferente a la que indico (es otro nuevo error)
Que exista el usuario y sea correcta la contraseña .... se le cambia y punto final.

En la primera exposición se asume (por como se ha descrito) que e formulario es independiente, por lo que el cambio de contraseña que se intenta no es correcto.

Crear el formulario en base a la tabla de usuarios, me parece que seria muy fácil acceder a la tabla (y esa tabla debería ser inviolable), por lo que lo adecuado es que el formulario sea independiente y la actualización ... mediante la consulta (que creo haber descrito de forma accesible).

Personalmente diferenciaría la verificación de la toma de datos del cambio de contraseña esto es, un modulo independiente que valide y si la validación es positiva, que ejecute la actualización.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar