VB运行时错误"3704",对象关闭时,不允许操作

登陆界面确定按钮代码如下:PrivateSubcmdLogin_Click()Dimrs_userAsNewADODB.RecordsetDimtxtSQLAsStrin... 登陆界面确定按钮代码如下:
Private Sub cmdLogin_Click()
Dim rs_user As New ADODB.Recordset
Dim txtSQL As String
Dim MsgText As String

If UsName.Text = "" Then
MsgBox "用户名不能为空,请输入用户名!", vbOKOnly + vbInformation, "注意"
UsName.SetFocus
Exit Sub
Else
If Pwd.Text = "" Then
MsgBox "请输入密码!", vbOKOnly + vbInformation, "注意"
Pwd.SetFocus
Exit Sub
Else
txtSQL = "select * from UserTable where userId='" & UsName.Text & "'"
Set rs_user = ExecuteSQL(txtSQL, MsgText)
If rs_user.EOF = True Then
MsgBox "没有这个用户,请重新输入你的用户名!", vbOKOnly + vbInformation, "注意"
UsName.SetFocus
Else
If Trim(rs_user.Fields(1)) = Trim(Pwd.Text) Then
OK = True
rs_user.Close
Me.Hide
UserName = Trim(UsName.Text)
FrmMain.Show
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbInformation, "注意"
Pwd.SetFocus
Pwd.Text = " "
End If
End If
End If
miCount = miCount + 1
If miCount = 3 Then
Me.Hide
End If
End If
End Sub
调试后指示If rs_user.EOF = True Then这个地方出错
展开
 我来答
Null_bd
2009-04-28 · TA获得超过503个赞
知道大有可为答主
回答量:583
采纳率:0%
帮助的人:0
展开全部
检查
Set rs_user = ExecuteSQL(txtSQL, MsgText) 是否有效执行
用msgbox Cstr(rs_user.state)查看记录集的状态,是打开的还是关闭的,如果关闭,则说明EXECUTESQL函数执行失败,或者未能将记录集对象有效返回
wyluo
2009-04-28 · 超过26用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:46.1万
展开全部
txtSQL = "select * from UserTable where userId='" & UsName.Text & "'"
Set rs_user = ExecuteSQL(txtSQL, MsgText)
If rs_user.EOF = True Then
你都没有连上数据库怎么就操作数据库了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悟雅可0JM09f
2009-04-30 · TA获得超过215个赞
知道答主
回答量:139
采纳率:0%
帮助的人:70万
展开全部
If rs_user.EOF = True 前面少了东东啊
前面加 If iflag = 1 Then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戢玉叔谷枫
2020-05-08 · TA获得超过969个赞
知道小有建树答主
回答量:1667
采纳率:91%
帮助的人:8.2万
展开全部
定义RS为公有变量,也就是在代码最前面定义。然后如下判断
If
Rs.State
=
1
Then
Rs.Close
关闭前先判断是否打开,打开则执行关闭,否则不执行。还有
open也一样
最好先判断是否是关闭状态再打开,如果已经打开了你再open就出错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
捷俊亥痴梅
2020-04-29 · TA获得超过1079个赞
知道小有建树答主
回答量:445
采纳率:66%
帮助的人:6.5万
展开全部
rs对象作用范围只是在Command1_Click()事件里
和Public
Sub
cL()
Rs.Close
里的rs对象不是同一个
所以cl里的rs没open却close当然出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请说缘6218
2009-05-02
知道答主
回答量:22
采纳率:0%
帮助的人:14.4万
展开全部
应该出在ExecuteSQL函数里,你应该看一下他是怎么运行的或直接拿出来我们看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式