Private Sub cmdOK_Click()
Dim n
n = 0
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Set cmd = New ADODB.Command
cnn.ConnectionString = "DSN=material;UID=sa;PWD=admin"
cnn.Open
Set cmd.ActiveConnection = cnn
cmd.CommandText = "select * from [user] where username='" + Me.txtUserName.Text + "'and password='" + Me.txtPassword.Text + "'"Set rst = cmd.ExecuteIf n = 3 Then
   MsgBox "您尝试的次数超过三次,系统将自动关闭", 0, "警告"
   End
 End If
If rst.RecordCount > 0 Then
OK = True
Me.Hide
Else
MsgBox "您的用户名或密码有误,请核对好重新输入", 0, "警告"
n = n + 1
 
End IfEnd Sub我输入数据库里面正确的用户名和密码,都提示用户名或密码有误,而且尝试次数超过三次也不自动退出,请问这是怎么回事?输入错误的用户名和密码也是一样提示用户名或密码有误

解决方案 »

  1.   

    用Set rst = cmd.Execute,rst.RecordCount是等于的-1
    改为
    sql="select * from [user] where username='" + Me.txtUserName.Text + "'and password='" + Me.txtPassword.Text + "'"
    rs.open sql,conn,1,1
      

  2.   

    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    cnn.ConnectionString = "DSN=material;UID=sa;PWD=admin"
    cnn.Open
    rst.Open  "select * from [user] where username='" + Me.txtUserName.Text + "'and password='" + Me.txtPassword.Text + "'",cnn, adOpenDynamic, adLockOptimisticif rst.eof then
    MsgBox "您的用户名或密码有误,请核对好重新输入", 0, "警告"
    n = n + 1
    If n = 3 Then
       MsgBox "您尝试的次数超过三次,系统将自动关闭", 0, "警告"
       End
     End Ifelse
    frmMain.show
    end if
      

  3.   

    你定义的n 是局部变量,每一次单击n的值都从0开始计数,你应该把n 定义为全局变量或静态变量