Private Sub Command1_Click()If Text1.Text = "" Then
MsgBox "请输入用户名"
Exit Sub
ElseIf Text2.Text = "" Then
MsgBox "请输入密码"
Exit Sub
End If
rs.Close
rs.Open "select * from STU_INFO where U_Name='" & Text1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic
If Not (rs.EOF And rs.BOF) Then
  if text2.text<>rs!U_Password then
    msgbox "密码错误"
  else
MsgBox "登陆成功"
Form2.Show
Unload Me
Else
MsgBox "没有该用户"
End If
End Sub运行后,用户名和密码都能与表中的对应,可还是现实的是“密码错误”,我该怎么办呢?

解决方案 »

  1.   

    加trim试试
    if trim(text2.text)<>rs.fields("U_Password") then
      

  2.   

    把rs.Close放在最后
    否则第一次回报错还有下面这句少个end if
    if text2.text<>rs!U_Password then
        msgbox "密码错误"
      else
    MsgBox "登陆成功"
    Form2.Show
    Unload Me
    end if
      

  3.   

    If Not (rs.EOF And rs.BOF) Then
     这句改成 
    If Not rs.EOF  Then
    text2.text<>rs!U_Password 
    改成
      trim(text2.text)<>rs!U_Password 
    在试试
    即:
    If Not rs.EOF  Then
      if trim(text2.text)<>rs!U_Password then
        msgbox "密码错误"
      else
        MsgBox "登陆成功"
        Form2.Show
      Unload Me
      Endif
    Else
       MsgBox "没有该用户"
    End If
      

  4.   

    设置断点看看这句if text2.text<>rs!U_Password then
    中的rs!U_Password是什么东东??
      

  5.   

    If Not (rs.EOF And rs.BOF) Then
    改成
    If rs.recordcount>0 Then
      

  6.   

    各位高手帮我也看看我遇到的问题与他有些相似,无论我输入什么密码都会登录下面是源码
    Private Sub CmdEnter_Click()
    Dim UserName As String
    Dim UserPass As String
    Dim SQLview As New Recordset
    Dim SQL As String
    Dim msgstring As String
       If (Com_user_name.Text = " " Or Com_user_name.Text = "(请选择)") Then
            MsgBox "请选择用户名!", vbOKOnly + vbExclamation, "警告"
          Com_user_name.SetFocus
          Else
            If Text_pass = " " Then
            MsgBox "请输入密码!", vbOKOnly + vbExclamation, "警告"
            Text_pass.SetFocus
            End If
        
       End If
    UserName = Trim(Com_user_name.Text)
    UserPass = Trim(Text_pass.Text)
    SQL = "select * from admininfo where admin_id=  '& username &' and admin_password='& userpass &'"
    Set SQLview = ExecuteSql(SQL, msgstring)
    If (SQLview.EOF = False) Then
      MsgBox "用户名与密码不符,请重新输入!", vbOKOnly + vbExclamation, "警告"
      Text_pass = ""
      Text_pass.SetFocus
         Else
          'admintype = SQLview.Fields(2)   如果登录成功这里也会报错,我是在模块中定      义的全局变量.定义语句为  Public admintype As String
           Me.Hide
           frm_main.Show
    End If
    End SubPublic Function ExecuteSql(ByVal StrSql As String, msgstring As String) As Recordset
    '声明一个连接
    Dim ConnectStr As New ADODB.Connection
    '声明一个记录集对象
    Dim RecordStr As New ADODB.Recordset
    Dim ConString As String
    '连接字符串
    ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=library;Data Source=."
    ConnectStr.ConnectionTimeout = 10
    ConnectStr.CursorLocation = adUseClient
    '打开一个连接
    ConnectStr.Open ConString
    '执行查询语句
    ConnectStr.Execute StrSql
    RecordStr.Open Trim$(StrSql), ConnectStr, adOpenKeyset, adLockBatchOptimistic
    '返回记录集对象
    Set ExecuteSql = RecordStr
    msgstring = "查询到" & RecordStr.RecordCount & "条记录"
    executesql_exit:
    Set RecordStr = Nothing
    Set ConnectStr = Nothing
    End Function
      

  7.   

    连接字 符串是错误的
    '连接字符串
    ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=library;Data Source=."“Data Source=”后面应该指明连接的数据库路径。判断语句改为If (SQLview.BOF and SQLview.EOF) Then
       MsgBox "用户名与密码不符,请重新输入!", vbOKOnly + vbExclamation, "警告"
       Text_pass = ""
       Text_pass.SetFocus
    Else
       Me.Hide
       frm_main.Show
    End If
    'admintype = SQLview.Fields(2)   如果登录成功这里也会报错,我是在模块中定      义的全局变量.定义语句为  Public admintype As String
    请用msgbox SQLview.fields(0)、msgbox SQLview.fields(1)、msgbox SQLview.fields(2)逐个看看,可能根本不存在SQLview.fields(2)
      

  8.   

    我也认为你这句写反了“text2.text<>rs!U_Password”
    应该 “rs!U_Password<>text2.text”吧
    我改了一下你代码的顺序,你试试:
    rs.Open "select * from STU_INFO where U_Name='" & Text1.Text & "'", conn, adOpenDynamic, adLockBatchOptimistic
    If rs.EOF = True Then
        MsgBox "没有这个用户,请重新输入用户名!"
        Text1.Text = ""
        Text2.Text = ""
        Text1.SetFocus
    Else
        If rs!U_Password = Trim(Text2.Text) Then
            MsgBox "登陆成功"
            Form2.Show
            Unload Me
        Else
            MsgBox "你输入的密码不正确,请重新输入!"
            Text2.SetFocus
            Text2.Text = ""
        End If
    ......
    End If
      

  9.   


    将下面这段  
    if text2.text<>rs!U_Password then
        msgbox "密码错误"
      else改成。if UCASE$(TRIM$(text2.text))<>UCASE$("" & rs!U_Password) then
        msgbox "密码错误"
      else还有,保存密码和用户名的字段最好是:varchar(),不要用VARCHAR()
    其中的区别想必你已知道。