表单中有2个文本框,表tbStudentLogs
中有2个字段。我想要做的是验证字段txtLoginID.Value
中是否存在StudentID
。如果是,我想验证txtPassword.text
是否为txtLoginID.text
是StudentID的同一记录中存在Private Sub Command15_Click()
If IsNull(Me.txtLoginID) Then
MsgBox "Please enter LoginID", vdInformation, "LoginID Required"
Me.txtLoginID.SetFocus
Else
'process the job
If (IsNull(DLookup("StudentID", "tbStudentLogs", "StudentID ='" & Me.txtLoginID.Value & "'"))) Or _
(IsNull(DLookup("SPassword", "tbStudentLogs", "SPassword = '" & Me.txtPassword.Value & "'"))) Then
'MsgBox "Incorrect LoginID or Password"
Else
'MsgBox "Login and Password Correct"
'Code to open new form etc,.
End If
End If
End Sub
。这是我使用的code,但我修改了名称:
Else
但是这没用。我得到的确切问题是:程序识别空字段,但我永远不能登录。换句话说,我无法进入最后IsNull
部分。因为密码和ID总是错误的。我检查了拼写等,但问题肯定在我的代码中。是>\S00009
部分吗?
修改
我意识到问题不在于我的代码。对于我的StudentID,输入掩码是:
S0001
例如,用户有1234
和密码0001
。如果我输入用户名为var id = message.author.id;
,即没有S,则可以使用。否则,它不起作用。为什么呢?
现在请注意,如果没有“S”,它将起作用。
答案 0 :(得分:0)
最可能的问题是,您正在为可能包含数字的字段使用字符串分隔符,因此始终返回Null
。
将DLookup("StudentID", "tbStudentLogs", "StudentID ='" & Me.txtLoginID.Value & "'")
更改为DLookup("StudentID", "tbStudentLogs", "StudentID =" & Me.txtLoginID.Value)
请注意,此类登录不提供真正的安全性,并且以纯文本格式存储密码是一种不好的做法。此外,您的代码对SQL注入是开放的。输入' OR 1=1 Or 'A' = '
作为密码的任何人都将通过密码检查。