我有一个if
。在第一个条件中,我正在使用Dlookup
函数来检查表单中文本的值是否与我拥有的某个表不同,但是该条件没有被采用。
我已将<>
运算符更改为=
,但结果仍然相同。它永远不会进入Else
部分。
Private Sub btn_Cambiar_Click()
On Error Resume Next
DoCmd.SetWarnings False
Dim CambiarContraseña As String
Dim coincidenContraseñas As Variant
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
我希望此if
必须直接转到else
部分,因为我在表单中输入的文本与表中的文本完全相同:
答案 0 :(得分:1)
如果您的模式匹配,则DLOOKUP的结果将返回一个值。如果找不到,DLOOKUP应该返回一个空值。因此,您要在If
中查找该空值。
赞:
If IsNull(DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña]='" & Me.txt_Contraseña.Value & "'")) Then
答案 1 :(得分:1)
您也可以这样做
If (Nz(DCount("[CID_Usario]", "tbl_Usuarios", "[Contraseña] <>'" & Me.txt_Contraseña.Value & "'"),0) > 0) Then ...