一个过程,用做登录界面,运行是无法通过,请问哪里错了,首先比较用户名,然后是密码,密码文件放在testdb.mdb中Function uservalidate(input_user As String, input_password As String) As Integer
Dim rs As New ADODB.Recordset
Dim sql As String
Dim tmp_password As String
Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Persist security info=false"conn.Openrs.ActiveConnection = conn
sql = "select user_account,user_password from users where user_account= "&input_user&""Call rs.Open(sql, conn)If (rs.EOF) Then
uservalidate = 1
rs.Close
conn.Close
Exit Function
End Iftmp_password = rs("user_password")rs.Close
conn.CloseIf StrComp(tmp_password, input_password) Then
uservalidate = 2
Exit Function
End If
uservalidate = 0
End Function

解决方案 »

  1.   

    sql = "select user_account,user_password from users where user_account= "&input_user&""
    改成:
    sql = "select user_account,user_password from [users] where user_account= '"& input_user &"'"
      

  2.   

    Call rs.Open(sql, conn)
    改成
    rs.Open sql, conn
      

  3.   

    sql = "select user_account,user_password from [users] where user_account= '"& input_user &"'"
      

  4.   

    同意楼上两位的
    真可惜来晚了啊
    呵呵[users] 
    不是这么写吧?sql = "select user_account,user_password from users where user_account= '"& input_user &"'"
      

  5.   

    conn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Persist security info=false"
    改成
    conn.ConnectionString = "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\testdb.mdb"
      

  6.   

    各位大哥,都不能用啊,麻烦再帮我看看吧、小马哥)的办法会出现run-time error '-2147467259(80004005)':
    找不到可安装的ISAM.
    RAIN哥的方法会Run-time error '-2147217904(80040e10)':
    [Microsoft][odbc Microsoft Access Driver]参数不足,期待是1.
    什么原因啊?
      

  7.   

    Call rs.Open(sql, conn)
    改成
    rs.Open sql, conn,1,1
      

  8.   

    你的ado版本是什么?请安装Microsoft Data Access Components 2.7
      

  9.   

    sql = "select user_account,user_password from users where user_account='"& input_user &"'"
      

  10.   


        同意该版本:sql = "select user_account,user_password from users where user_account= '"& input_user &"'"
      

  11.   

    sql = "select user_account,user_password from users where user_account= '"& input_user &"'"
      

  12.   

    现贴完整版本如下,大家帮忙看看吧。谢谢了Dim result As Integer
    Private Sub cmdCancel_Click()
        End
    End Sub
    Private Sub cmdOK_Click()
    If (txtPWD = "" Or txtUser = "") Then
        MsgBox "用户名/密码 不能为空!"
        End If
        
        result = uservalidate(txtUser, txtPWD)
        If (result = 0) Then
        user_account = txtUser
        user_password = txtPWD
        Unload Me
        Else
        Select Case result
        Case 1:
        MsgBox "用户" & frmLogin.txtUser & "不存在"
        Case 2:
        MsgBox "用户" & frmLogin.txtUser & "密码错误"
        
        Case Else
        MsgBox "未知错误"
        End Select
        End If
    End Sub
    Function uservalidate(input_user As String, input_password As String) As Integer
    Dim rs As New ADODB.Recordset
    Dim sql As String
    Dim tmp_password As String
    Dim conn As New ADODB.Connectionconn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Presist security info=false"conn.Openrs.ActiveConnection = conn
    sql = "select user_account,user_password from users where user_account= &input_user& "
    Call rs.Open(sql, conn)If (rs.EOF) Then
    uservalidate = 1
    rs.Close
    conn.Close
    Exit Function
    End Iftmp_password = rs("user_password")rs.Close
    conn.CloseIf StrComp(tmp_password, input_password) Then
    uservalidate = 2
    Exit Function
    End If
    uservalidate = 0
    End Function
    Private Sub Form_Load()
    result = -1End SubPrivate Sub Form_Unload(Cancel As Integer)
    If (Not result) Then
    form1.Show
    End If
    End Sub
      

  13.   

    根据用户名和密码两个条件同时查询不好么
    试试下面的代码dim AdoRs as New ADODB.Recordset
    Dim gadoConnAs New ADODB.ConnectiongadoConn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;data source=" & App.Path & "\testdb.mdb;Presist security info=false"gadoConn.OpenAdoRs.ActiveConnection = gadoConn
    If AdoRs.State = 1 Then
       AdoRs.Close
    End IfAdoRs.Open strSQl, gadoConn, adOpenStatic, adLockReadOnly
    if not AdoRs.EOF and not AdoRs.BOF then
       ‘验证通过
    end if