| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 688 人关注过本帖
标题:对象关闭时,不允许操作 怎么回事啊
只看楼主 加入收藏
wangnawangna
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-6-7
收藏
 问题点数:0 回复次数:2 
对象关闭时,不允许操作 怎么回事啊

对象关闭时,不允许操作 怎么回事啊
谢谢高手帮我看看

Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim SD As Boolean
Private Function checkclass() As Boolean '检测添加的课程是否重复
On Error GoTo errh
Set rs = New ADODB.Recordset
Set cn = New ADODB.Recordset
Set rs = cn.Execute("SELECT 课程号 FROM 课程 WHERE 课程号='" & Trim(Text1.Text) & "'")
If rs.EOF Then
rs.Close
checkclass = True
Exit Function
End If
checkclass = False
rs.Close
Exit Function
errh:
rs.Close
MsgBox Err.Description
End Function

Private Sub Command1_Click()
On Error GoTo errh
If Text1.Text <> "" Then
If Text2.Text <> "" Then
If Text3.Text <> "" Then
If checkclass Then
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("课程号").Value = Text1.Text
Adodc1.Recordset.Fields("课程名称").Value = Text2.Text
Adodc1.Recordset.Fields("授课老师").Value = Text3.Text
Adodc1.Recordset.Update
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
MsgBox "添加成功!"
'Adodc1.Refresh
Else
MsgBox "课程重复,请另外输入一门课程!"
Text1.SetFocus
End If
Else
MsgBox "该项不能为空,请输入授课老师姓名!"
End If
Else
MsgBox "该项不能为空,请输入课程名称!"
End If
Else
MsgBox "该项不能为空,请输入课程号!"
End If

Exit Sub
errh:
MsgBox Err.Description
End Sub

Private Sub Command15_Click()
Unload Me
End Sub

Private Sub Command2_Click()
On Error GoTo errh
If MsgBox("你的操作将会删除当前的纪录,你确信吗?", vbOKCancel, "警告") = vbOK Then
If Text1.Text <> "" Then
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM 课程 WHERE 课程号='" & Trim(Text1.Text) & "' ", cn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF Then
rs.Close
MsgBox "没有该课程,无法删除!", vbOKOnly + vbExclamation, "警告"
Text1.Text = ""
Exit Sub
End If
rs.Delete
rs.Update
rs.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
MsgBox "删除成功!"
Else
MsgBox "该项不能为空,请输入课程号!"
End If
End If
Exit Sub

搜索更多相关主题的帖子: 对象 
2007-06-07 15:49
wufuxin33
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-1-26
收藏
得分:0 
If rs.EOF Then
rs.Close
checkclass = True
Exit Function
End If
checkclass = False
rs.Close
这段代码当rs.EOF=true 时rs 将执行两次close.(当rs.close后不充许再执行close
2007-06-10 16:08
wufuxin33
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-1-26
收藏
得分:0 

说错了,我调试你的代码后发现运行到: Set rs = cn.Execute("SELECT 课程号 FROM 课程 WHERE 课程号='" & Trim(Text1.Text) & "'")这句代码出错.跳到错误处理执行rs.close时出错.rs.close还未打开就关闭.

2007-06-10 16:20
快速回复:对象关闭时,不允许操作 怎么回事啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023814 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved