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这个地方出错 展开
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这个地方出错 展开
6个回答
展开全部
txtSQL = "select * from UserTable where userId='" & UsName.Text & "'"
Set rs_user = ExecuteSQL(txtSQL, MsgText)
If rs_user.EOF = True Then
你都没有连上数据库怎么就操作数据库了?
Set rs_user = ExecuteSQL(txtSQL, MsgText)
If rs_user.EOF = True Then
你都没有连上数据库怎么就操作数据库了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
If rs_user.EOF = True 前面少了东东啊
前面加 If iflag = 1 Then
前面加 If iflag = 1 Then
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义RS为公有变量,也就是在代码最前面定义。然后如下判断
If
Rs.State
=
1
Then
Rs.Close
关闭前先判断是否打开,打开则执行关闭,否则不执行。还有
open也一样
最好先判断是否是关闭状态再打开,如果已经打开了你再open就出错了。
If
Rs.State
=
1
Then
Rs.Close
关闭前先判断是否打开,打开则执行关闭,否则不执行。还有
open也一样
最好先判断是否是关闭状态再打开,如果已经打开了你再open就出错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
rs对象作用范围只是在Command1_Click()事件里
和Public
Sub
cL()
Rs.Close
里的rs对象不是同一个
所以cl里的rs没open却close当然出错
和Public
Sub
cL()
Rs.Close
里的rs对象不是同一个
所以cl里的rs没open却close当然出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该出在ExecuteSQL函数里,你应该看一下他是怎么运行的或直接拿出来我们看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询