VB+SQL 登陆窗体验证用户名和密码的问题

时间:2021-07-21 04:20:05
公共模块部分:
Public cn As ADODB.Connection
Public Sub GetConnected()
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=医院;Data Source=(local)"
    cn.CommandTimeout = 10
    cn.Open
End Sub
在该FORM的通用部分:
Dim str As String
Dim rs As ADODB.Recordset
Private Sub cmdOK_Click()
    '检查正确的密码
    
    If Trim(txtUserName.Text = "") Then
        MsgBox "没有输入用户名称,请重新输入!", vbOKOnly + vbExclamation, "警告"
        txtUserName.SetFocus
    Else                                                '查询用户
        GetConnected
        Set rs = New ADODB.Recordset
        str = "select * from psw where userID ='" & txtUserName.Text & "'" '&select * from psw where userPSW='" & txtPassword.Text & "'"
        rs.Open str, cn, adOpenDynamic, adLockOptimistic
            If rs.EOF = True And rs.BOF = True Then
                txtUserName.Text = ""
                txtPassword.Text = ""
                MsgBox "没有这个用户,请重新输入!", vbOKOnly + vbExclamation, "警告"
                txtUserName.SetFocus
            Else
                If txtPassword.Text = rs!userPSW Then
                    txtUserName.Text = rs!userID
                    rs.Close
                    Me.Hide
                    gUserName = Trim(txtUserName.Text) '保存用户名称
                    Dialog1.Show                                  '成功登陆修改窗口
                    Unload Me
 
                Else
                    MsgBox "无效的密码,请重试!", vbOKOnly + vbExclamation, "警告"
                    txtPassword.SetFocus
                    SendKeys "{Home}+{End}"
                End If
            End If
    End If

运行之后,不管是否输入用户名和密码,显示的都是“无效的密码,请重试!”大家帮下忙拉,急着呢。3Q

3 个解决方案

#1


If txtPassword.Text = rs!userPSW Then
-----------------------
会不会是包含有空格?改一下试试

If Trim(txtPassword.Text) = Trim(rs!userPSW) Then

#2


If Trim(txtUserName.Text = "") Then
        MsgBox "没有输入用户名称,请重新输入!", vbOKOnly + vbExclamation, "警告"
------------------------------
这里的If 条件没写对,应该是
If Trim(txtUserName.Text) = "" Then
......

#3


谢谢fansky2的帮忙,问题解决了。
应该是IF条件那的问题。
结帐......

#1


If txtPassword.Text = rs!userPSW Then
-----------------------
会不会是包含有空格?改一下试试

If Trim(txtPassword.Text) = Trim(rs!userPSW) Then

#2


If Trim(txtUserName.Text = "") Then
        MsgBox "没有输入用户名称,请重新输入!", vbOKOnly + vbExclamation, "警告"
------------------------------
这里的If 条件没写对,应该是
If Trim(txtUserName.Text) = "" Then
......

#3


谢谢fansky2的帮忙,问题解决了。
应该是IF条件那的问题。
结帐......