Private Sub Command1_Click()    Adodclogin.Recordset.MoveFirst
    Dim found As Boolean
    found = False
    Adodclogin.Refresh
    Dim id As String
    id = Trim(Text1)
    Dim passedword As String
    passedword = Trim(Text2)
    Dim i%
    For i = 0 To Adodclogin.Recordset.RecordCount
    If Adodclogin.Recordset.Fields(0) = id And Adodclogin.Recordset.Fields(1) = passedword Then
    found = True
    Else
    Adodclogin.Recordset.MoveNext
    End If
    Next i
    
    
    
    If found = True Then
        Unload Me
        '载入自己的窗口
    Else
        MsgBox "名称和密码不正确!", vbCritical, "错误"
    End If
    
End Sub

解决方案 »

  1.   

    抄的代码?添加Adodclogin了吗?
      

  2.   

    试试前面加一句
    Adodclogin.Refresh
      

  3.   

    Adodclogin.Refresh应该在Adodclogin.Recordset.MoveFirst的前面而不是后面吧
      

  4.   

    Adodclogin.Refresh
    加了这句后错误是 没指定记录源数据源我是用 SQL server 2005 做的,连接测试都通过
      

  5.   

    Adodclogin.Connectionstring=.....
    Adodclogin.recordsource=....
    然后才
    Adodclogin.Refresh
      

  6.   

    谢谢大家,问题解决了
    但有一点不明白,我调试时发现 Adodclogin.Recordset.RecordCount =2 (我数据库就只有2个记录) ,那是不是意味这下面的循环 i 的初始值该为1?
      For i = 0 To Adodclogin.Recordset.RecordCount
      

  7.   

    应该是For i = 0 To Adodclogin.Recordset.RecordCount-1
    或者For i = 1 To Adodclogin.Recordset.RecordCount
    只要控制循环次数别超过记录总数就行,否则到了记录的底部再MoveNext就出错了。