【求助】写在模块中的程序,窗口里调用出问题(登录框)
各位老师:我在模块中添加一个exesql功能,但是在登陆窗运行的时候,总是出现:对象关闭时,不允许操作的提示,具体程序如下:
【模块中】
Public Function exesql(ByVal sql As String) As ADODB.Recordset '执行查询语句
sql = Trim(sql) '查询语句
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
'打开数据库
conn.Open "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\stud.mdb"
'执行查询语句
Set rst = conn.Execute(sql)
'返回
Set exesql = rst
rst.Close
conn.Close
End Function
【登陆界面】
Private Sub Command1_Click()
Dim sqltxt As String
Dim rs As New ADODB.Recordset
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "用户名或密码不能为空,请重新输入", vbOKOnly + vbExclamation, "系统提示"
End If
If Text1.Text <> "" And Text2.Text <> "" Then
sqltxt = "select * from oper where 用户名='" & Trim(Text1.Text) & "'"
set rs=exesql(sqltxt)
If n < 3 Then
If rs.RecordCount <> 0 Then '到这里就错误了,提示对象关闭。。。
If rs.Fields("口令") = Trim(Text2.Text) Then
main.Show
Unload Me
ulevel = rs.Fields("级别")
Else
MsgBox "密码错误,请重新输入", vbOKOnly + vbExclamation, "系统提示"
n = n + 1
Text2.SetFocus
End If
Else
MsgBox "无此用户!", vbOKOnly + vbExclamation, "系统提示"
Text1.SetFocus
n = n + 1
End If
Else
MsgBox "超过登陆次数,自动退出", vbOKOnly, "系统提示"
End
End If
End If
End Sub
如果把打开数据库和查询放在登陆窗体中做,一切正常,为什么?我是根据教材上做的,怎么会这样,请老师们指教,不胜感激!