帮我看看这段vb代码有什么问题?

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:23:22
要做一个登陆窗口,老师给出的代码在他的机子上可以运行,可是我们按照代码重新打一次就不行,提示:“对象关闭时,不允许操作。”提示错误在rs.movefirst。请各位vb高手看看有什么问题并更正,谢谢!
代码如下:
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection

Private Sub Command1_Click()
Dim yhm As String, mm As String, jb As String
yhm = Text1.Text: mm = Text2.Text: jb = Combo1.Text
rs.MoveFirst
For i = 1 To rs.RecordCount
rs.MoveFirst
If yhm = rs.Fields("user_name") And mm = rs.Fields("user_psw") And jb = rs.Fields("user_type") Then
Form1.Show
Form6.Hide
rs.MoveNext
Else

If rs.EOF Then MsgBox "无此用户,请重新输入"
Text1.Text = "": Text2.Text = "": Combo1.Text = ""
rs.MoveNext
End If
Next i

End Sub
窗口模块如图片所示:

Dim yhm As String, mm As String, jb As String
下面加上
set rs = new adodb.recordset

错误原因应该是在其他地方有
rs.close
应该是
set rs=nothing

或者重新声明变量,在command1事件下
dim newrs as new adodb.recordset
之后的语句就是
newrs.movefirst

Private Sub Command1_Click()
Dim yhm As String, mm As String, jb As String
yhm = Text1.Text: mm = Text2.Text: jb = Combo1.Text
rs.MoveFirst
For i = 1 To rs.RecordCount
'rs.MoveFirst 此句不能有
If yhm = rs.Fields("user_name") And mm = rs.Fields("user_psw") And jb = rs.Fields("user_type") Then
Form1.Show
Form6.Hide
'rs.MoveNext
Exit for
ELSE
If rs.EOF Then
MsgBox "无此用户,请重新输入"
Text1.Text = "": Text2.Text = "": Combo1.Text = ""
else
rs.MoveNext
End If
Endif
next i

End Sub

这个很明显啦
你窗体下面有个ADODC控件,这个应该是由于你ADODC的属