在DLookup中找不到输入掩码文字字符?

时间:2018-03-26 08:24:37

标签: database ms-access login access-vba input-mask

表单中有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,则可以使用。否则,它不起作用。为什么呢?

至于Erik的回答,这就是我得到的: enter image description here

现在请注意,如果没有“S”,它将起作用。

1 个答案:

答案 0 :(得分:0)

最可能的问题是,您正在为可能包含数字的字段使用字符串分隔符,因此始终返回Null

DLookup("StudentID", "tbStudentLogs", "StudentID ='" & Me.txtLoginID.Value & "'")更改为DLookup("StudentID", "tbStudentLogs", "StudentID =" & Me.txtLoginID.Value)

请注意,此类登录不提供真正的安全性,并且以纯文本格式存储密码是一种不好的做法。此外,您的代码对SQL注入是开放的。输入' OR 1=1 Or 'A' = '作为密码的任何人都将通过密码检查。