VBA Access: Else is never taken into account

0

Initially I had the following code:

Private Sub btn_Cambiar_Click()

On Error Resume Next

    DoCmd.SetWarnings False

    Dim CambiarContraseña As String
    Dim coincidenContraseñas As Variant

    If coincidenContraseñas = DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña] =" & Me.txt_Contraseña) Then

            CambiarContraseña = _
            "UPDATE tbl_Usuarios SET Contraseña = txt_Contraseña_Nueva.value WHERE ID_Usuario = txt_Usuario"

            DoCmd.RunSQL CambiarContraseña

            MsgBox ("Changed")

            txt_Contraseña = Null
            txt_Contraseña_Nueva = Null

        Else
            MsgBox "lala"
    End If

End Sub

And I only took into account the initial condition, but not the else, which would be in case the password text was different, so I specifically included that with a new condition using IfElse like this:

Private Sub btn_Change_Click () On Error Resume Next

DoCmd.SetWarnings False

Dim CambiarContraseña As String
Dim coincidenContraseñas As Variant

If coincidenContraseñas = DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña] =" & Me.txt_Contraseña) Then

        CambiarContraseña = _
        "UPDATE tbl_Usuarios SET Contraseña = txt_Contraseña_Nueva.value WHERE ID_Usuario = txt_Usuario"

        DoCmd.RunSQL CambiarContraseña

        MsgBox ("Contraseña cambiada")

        txt_Contraseña = Null
        txt_Contraseña_Nueva = Null

    ElseIf coincidenContraseñas = DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña] <>" & Me.txt_Contraseña) Then

        MsgBox "Contraseña Incorrecta"
        txt_Contraseña.SetFocus
        txt_Contraseña_Nueva = Null

        Exit Sub

    Else
        MsgBox "lulu"
End If

End Sub

But with the previous code, I still have the same problem, even though it is the same or different from the txt_Contraseña

I appreciate any help or suggestion regarding this, thank you.

    
asked by dirojas 14.11.2018 в 17:14
source

1 answer

0

It is necessary to correct the syntax of the initial condition of If and it is not necessary to declare a variable Variant , also to add another condition, that is, another If to express the opposite of the first condition:

Private Sub btn_Cambiar_Click()
On Error Resume Next

    DoCmd.SetWarnings False

    'CurrentDb.Execute dbFailOnError

    If (DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña] <>'" & Me.txt_Contraseña.Value & "' ")) Then
        MsgBox "¡La contraseña no coincide!"
        Me.txt_Contraseña.SetFocus

    Else
            CambiarContraseña = _
            "UPDATE tbl_Usuarios SET Contraseña = txt_Contraseña_Nueva.value WHERE ID_Usuario = txt_Usuario"

            DoCmd.RunSQL CambiarContraseña

            MsgBox ("Contraseña Cambiada")

            txt_Contraseña = Null
            txt_Contraseña_Nueva = Null
    End If

End Sub
    
answered by 16.11.2018 / 20:28
source