VBA MS ACCESS:如何修复if中的第一个条件?

VBA MS ACCESS:如何修复if中的第一个条件?,vba,ms-access,Vba,Ms Access,我有一个if。在第一个条件中,我使用一个Dlookup函数来检查表单中文本的值是否与我拥有的某个表不同,但该条件不适用 我已将运算符更改为=,但仍然得到相同的结果。它从不转到其他部分 专用子btn\u Cambiar\u Click() 出错时继续下一步 DoCmd.SetWarnings错误 朦胧的Cambiarconstraseña如弦 Dim Concontraseñas变体 CurrentDb.executedbfailonerror 如果(DLookup(“[Contraseña]”,

我有一个
if
。在第一个条件中,我使用一个
Dlookup
函数来检查表单中文本的值是否与我拥有的某个表不同,但该条件不适用

我已将
运算符更改为
=
,但仍然得到相同的结果。它从不转到
其他部分

专用子btn\u Cambiar\u Click()
出错时继续下一步
DoCmd.SetWarnings错误
朦胧的Cambiarconstraseña如弦
Dim Concontraseñas变体
CurrentDb.executedbfailonerror
如果(DLookup(“[Contraseña]”,“[Contraseña]”,“[Contraseña]”和Me.txt_Contraseña.Value&“”),那么
MsgBox“La contraseña no consept!!/”
Me.txt_Contraseña.SetFocus
其他的
CambiarContraseña=_
“更新tbl_Usuarios SET Contraseña=txt_Contraseña_Nueva.value,其中ID_Usuario=txt_Usuario”
DoCmd.RunSQL CambiarContraseña
MsgBox(“Contraseña cambiada.”)
txt_Contraseña=Null
txt_Contraseña_Nueva=Null
如果结束
端接头
我希望此
if
必须直接转到
else
部分,因为我在表格中输入的文本与我在表格中输入的文本完全相同:


如果模式匹配,DLOOKUP的结果将返回一个值。如果未找到,DLOOKUP应返回null。因此,在
If
中,您希望查找空值

像这样:

If IsNull(DLookup("[Contraseña]", "tbl_Usuarios", "[Contraseña]='" & Me.txt_Contraseña.Value & "'")) Then

你也可以这样做

  If (Nz(DCount("[CID_Usario]", "tbl_Usuarios", "[Contraseña] <>'" & Me.txt_Contraseña.Value & "'"),0) > 0) Then ...
如果(Nz(DCount(“[CID_Usario]”)、“tbl_usarios”、“[Contraseña]”和Me.txt_Contraseña.Value&“”),0)>0,那么。。。

认为如果dcount
那么……您的意思是替换或添加该函数吗?为什么我要这么说?由于该函数计算寄存器的数量,因为Dlookup将返回一个值,所以不确定它将如何处理多个返回,您只想查看它是否存在于表中,因此使用dcount,0表示它不存在,而>0表示它确实存在。我可能还不明白你的问题:)是的,现在在现场的记录正在改变。但这种情况经常发生。我的意思是,在表中,密码是123,但如果我键入12345,则总是转到“其他”部分,因此,我不明白为什么在没有巧合的情况下,它不会停止。只需弹出第一个
MsgBox
即可查看正在使用的
Debug.Print Me.txt\u Contraseña.Value
。您可以对所有内容执行此操作,并直观地查看正在使用的值。阅读以下内容:我得到的结果与更正第一个答案的结果相同。你的建议看起来有点复杂