| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 613 人关注过本帖
标题:[求助]关于修改表里多条记录的问题
只看楼主 加入收藏
djccit
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2005-12-26
收藏
 问题点数:0 回复次数:1 
[求助]关于修改表里多条记录的问题
'本窗体既作为"添加部门"又作为"修改部门"
Public conn As ADODB.Connection
Public strSQL As String

Private Sub Command1_Click()
Dim str As New ADODB.Recordset
Set str = New ADODB.Recordset
'------------
If Me.Caption = "添加部门" Then

str.CursorLocation = adUseClient
str.Open "select * from department", conn, adOpenStatic, adLockReadOnly '取出表中的记录数,
'目的是取出它的最后
'一条记录的ID,方便添加新记录
strSQL = "insert into department values('" & "0" & str.RecordCount + 1 & "','" & Trim$(Text1.text) & "','')"

Set str = Nothing
'------------ 以上是添加部门(即添加根结点)
Else
' -----------
strSQL = "select id from department where main_menu='" & Trim$(FrmDepartmentSz.TreeView1.SelectedItem.text) & "'"
If str.State = adStateOpen Then str.Close
str.Open strSQL, conn, adOpenStatic, adLockReadOnly
' ----------取出要修改部门的所有ID

If str.RecordCount > 1 Then '如果一个部门有多条记录(多个根结点),则根据ID对多条记录修改

str.MoveFirst
For i = 1 To str.RecordCount
strSQL = "update department set main_menu='" & Trim$(Text1.text) & "' where id= '" & Trim$(str!id) & "'"
If str.State = adStateOpen Then str.Close
str.Open strSQL, conn, adOpenStatic, adLockReadOnly

’ str.MoveNext
Next i
Set str = Nothing
Resume DYtreechange
Else
’ 如果一个部门有一条记录(一个根结点)
strSQL = "update department set main_menu='" & Trim$(Text1.text) & "' where id= '" & Trim$(str!id) & "'"
End If
End If
If str.State = adStateOpen Then str.Close
str.Open strSQL, conn, adOpenStatic, adLockReadOnly
Set str = Nothing
DYtreechange:
Unload Me
FrmDepartmentSz.Tree_change
End Sub

Private Sub Form_Load()

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;" _
+ "User ID=sa;password=sa;Initial Catalog=ComSys;Data Source=127.0.0.1"
conn.Open
End Sub
我这段程序是用来添加和修改结点的,当修改结点时,如果父结点下有两个或两个以上的子结点时,程序运行就出现问题,提示出错是被注销的那一句,(str.MoveNext) 错误信息是:实时错误‘3704’对像关闭时操作不被允许,这是为什么呀

搜索更多相关主题的帖子: 表里 str ADODB New 
2006-05-10 18:19
quickbird
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-1
收藏
得分:0 

因为for循环中当i=str.RecordCount时,记录已经移到最后了,再用str.MoveNext肯定会出错的。


算浮生事,瞬息光阴,锱铢名宦。 正欢笑,试恁暂时分散。 却是恨雨愁云,地遥天远。
2006-05-10 20:47
快速回复:[求助]关于修改表里多条记录的问题
数据加载中...
 
   



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

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