代码:
If Text1.Text <> "" And Text2.Text <> "" And Text2.Text = Adodc1.Recordset.Fields("密码") And Text1.Text = Adodc1.Recordset.Fields("学号") Then
        Load Form2
        Form2.Show
        Unload Me
    ElseIf Text1.Text <> Adodc1.Recordset.Fields("学号") Then
        MsgBox ("用户名错误!")
        Text1.SetFocus
        ElseIf Text2.Text <> Adodc1.Recordset.Fields("密码") Then
            MsgBox ("密码错误!")
            Text2.SetFocus
        End If
为什么只能读到密码表里的第一个数据?

解决方案 »

  1.   

    这样的做法不好,你需要一条一条记录的判断,这样只判断了第一条记录,可以用MoveNext去做。
    不过应该根据用户输入的用户名和密码去数据库查找匹配的数据
      

  2.   

    郁闷,用控件的,还没有进行数据库查询
    教你个用类的方法,而且你还要了解如何输入查询语句来玩数据库   Dim Conn As Object, rs As Object, rsRecordCount As Long
       Set Conn = CreateObject("ADODB.Connection")
       Set rs = CreateObject("ADODB.Recordset")
       
       Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
       rs.Open "Select Count(*) As 根据条件查询出来得数据条数 From 你的表名 Where 学号='" & Text1.Text & "' And 密码='" & Text2.Text & "'", Conn, 3, 3
       rsRecordCount = rs!根据条件查询出来得数据条数
       rs.Close
       Conn.Close
       Set rs = Nothing
       Set Conn = Nothing
       
       If rsRecordCount >= 1 Then
          Load Form2
          Form2.Show
          Unload Me
       ElseIf Text1.Text = "" Or Text2.Text = "" Then
          MsgBox "用户名或密码不能为空。", 64, "提示"
       Else
          MsgBox "用户名或密码不正确。", 64, "提示"
       End If如果你会引用类库的话就引用 Microsoft ActiveX Data Objects 2.0 Library 或更高版本
    然后程序里就可以通过变量定义的方式使用类了
    程序就可以改成这样写   Dim Conn As New Connection, rs As New Recordset, rsRecordCount As Long
       
       Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb"
       rs.Open "Select Count(*) As 根据条件查询出来得数据条数 From 你的表名 Where 学号='" & Text1.Text & "' And 密码='" & Text2.Text & "'", Conn, 3, 3
       rsRecordCount = rs!根据条件查询出来得数据条数
       rs.Close
       Conn.Close
       Set rs = Nothing
       Set Conn = Nothing
       
       If rsRecordCount >= 1 Then
          Load Form2
          Form2.Show
          Unload Me
       ElseIf Text1.Text = "" Or Text2.Text = "" Then
          MsgBox "用户名或密码不能为空。", 64, "提示"
       Else
          MsgBox "用户名或密码不正确。", 64, "提示"
       End If