各位大虾们,请帮帮小弟:下面是一个密码验证程序,但输入的密码只要数据库里面有的就可以通过验证(当然用户名也是):Private Sub cmdOK_Click()    If txtUserName = "" Then
        MsgBox "请输入用户名!", vbInformation, "新港龙酒店"
        txtUserName.SetFocus
        Exit Sub
    ElseIf txtPassword = "" Then
        MsgBox "请输入密码!", vbInformation, "新港龙酒店"
        txtPassword.SetFocus
        Exit Sub
    End If    sql = "select * from users where user='" & txtUserName & "'"
    
    Set rs = New ADODB.Recordset    Set rs = conn.Execute(sql)
    
    If rs.RecordCount = 0 Then
        MsgBox "您输入的用户名不正确!", vbCritical, "新港龙酒店"
        txtUserName.SetFocus
        Exit Sub
    End If
    
    
    sql = "select * from users where password='" & txtPassword & "'"
    
    Set rs = New ADODB.Recordset    Set rs = conn.Execute(sql)
    
    If rs.RecordCount = 0 Then
        MsgBox "您输入的密码不正确!", vbCritical, "新港龙酒店"
        txtPassword.Text = ""
        txtPassword.SetFocus
        Exit Sub
    Else
        users = txtUserName.Text
        Unload Me
        frmMain.Show
    End IfEnd Sub如有更好的解决办法请 send e-mail : [email protected] ,,谢谢!!

解决方案 »

  1.   

    写一句SQL就行了。都是一个表的内容嘛。为什么把rs set2次呢
      

  2.   

    Private Sub cmdOK_Click()    If txtUserName = "" Then
            MsgBox "请输入用户名!", vbInformation, "新港龙酒店"
            txtUserName.SetFocus
            Exit Sub
        ElseIf txtPassword = "" Then
            MsgBox "请输入密码!", vbInformation, "新港龙酒店"
            txtPassword.SetFocus
            Exit Sub
        End If    sql = "select * from users where user='" & Trim(txtUserName) & "'"
        
        Set rs = New ADODB.Recordset    Set rs = conn.Execute(sql)
        
        If rs.RecordCount = 0 Then
            MsgBox "您输入的用户名不正确!", vbCritical, "新港龙酒店"
            txtUserName.SetFocus
            Exit Sub
        else
            if trim(rs!password)=trim(txtPassword) then
                msgbox "登陆成功!"
                Unload Me
                frmMain.Show 
            else
                MsgBox "您输入的密码不正确!", vbCritical, "新港龙酒店"
                txtPassword.Text = ""
                txtPassword.SetFocus
                Exit Sub
            end if
      
        End If
    End Sub
      

  3.   

    还有个问题,我在运行上面代码的时候,
    老是提示"New ADODB.Recordset",用户定义类型未定义,
    是为什么啊?????
      

  4.   

    啊,那是因为你没参照。Liberary 2.6
      

  5.   

    '验证密码格式
    username=/#[a-z|A-Z|0-9]$/
    '验证密码格式
    password=/#[a-z|A-Z|0-9]$/'进行数据库验证
    SQL_Query_str="select from table where username=? and password=?"
    conection.execute ..
    '有返回则通过验证
      

  6.   

    首先要引用Microsoft ActiveX Data Objects 2.7 Library
    然后在查询的时候要注意同时验证用户名和密码
    用一个SQL语句:sql="Select * From user Where username=? and password=?"
      

  7.   

    那当它检测"用户名"的同时会检测该用户的密码吗?还是密码等于其中 "password" 列的一个就可以呢?
      

  8.   

    就 free2004(Dava) 的问题, 当"用户名"中如果输入带有字符"'"就会出现错误!该怎么解决呢?
    还有" Trim(rs!Password) "是什么意思?呵呵.... 新手 ^_^