|
今天做了个用户登陆的窗体,并写了代码如下:
Private Sub OK_CMD_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
Set conn = CurrentProject.Connection '打开数据库
strSQL = "select * from userform" '设置查询的数据表
rs.Open strSQL, conn, adOpenKeyset, adLockPessimistic, 1 '记录集
Set txtName = rs.Fields("username") '引用username字段
Set Userpwd = rs.Fields("password") '引用password字段
If Len(Nz(Me!NameCombo)) = 0 And Len(Nz(Me!txtPwd)) = 0 Then
MsgBox "请选择用户名和输入密码!", vbCritical, "错误"
Me!NameCombo.SetFocus '判断用户名和密码是否用误,如果有误,则弹出警告框
ElseIf Len(Nz(Me!NameCombo)) = 0 Then
MsgBox "请选择用户名!", vbCritical, "错误" '用户名有误
Me!NameCombo.SetFocus
ElseIf Len(Nz(Me!txtPwd)) = 0 Then
MsgBox "请输入密码!", vbCritical, "错误" '密码有误
Me!txtPwd.SetFocus
Else
If Me!NameCombo = txtName Then
If Me!txtPwd = Userpwd Then
MsgBox "登陆成功!", vbInformation, "成功" '登陆成功时打开
Else
MsgBox "密码有误!请重新输入!", vbCritical, "错误"
Me!txtPwd.SetFocus
End If
Else
MsgBox "用户名有误!请重新输入!", vbCritical, "错误"
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End If
End Sub
userform中有两个用户名:第一个是ABC,密码为1234,第二个为ABCD,密码为123456,当用第一个用户名时可以登陆成功,而在用第二个用户名登陆时却总是说用户错误。也就是说,在用ADO建立记录集时只取到了表中的第一个记录,请问各位高手,这是什么原因,是不是代码有问题,还是其他的原因呢? |
|