首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

使用treeview时,提示对象打开,不允许操作解决方法

2012-04-16 
使用treeview时,提示对象打开,不允许操作PrivateSubForm_Load()DimnodXAsNodeDimiAsIntegerTreeView1.Line

使用treeview时,提示对象打开,不允许操作
Private   Sub   Form_Load()
        Dim   nodX   As   Node
        Dim   i   As   Integer
        TreeView1.LineStyle   =   tvwRootLines     '   Linestyle   1显示+/-号

opendb
Dim   rs   As   New   ADODB.Recordset

Dim   sql   As   String
Dim   sqlzu   As   String

sql   =   "select   *   from   cun "
rs.Open   sql,   Conn,   1,   1
               
While   Not   rs.EOF
        Set   nodX   =   TreeView1.Nodes.Add(,   ,   "k "   &   rs.Fields( "cbhao "),   rs.Fields( "cming "))
        Dim   rszu   As   New   ADODB.Recordset
        sqlzu   =   "select   *   from   zu   where   cbhao   like   ' "   &   rs.Fields( "cbhao ")   &   " ' "
        rszu.Open   sqlzu,   Conn,   1,   1
       
        rs.MoveNext
Wend


End   Sub

运行后提示 "提示对象打开,不允许操作 ",请高手帮忙看看为什么会这样?

[解决办法]
Dim rszu As New ADODB.Recordset貌似不应在循环体内定义
[解决办法]
楼上的,这句定义没问题的。

问题在这里:

rszu.Open sqlzu, Conn, 1, 1
这条语句在循环体内,rszu就会被open好多次,而这时不允许的。使用完rszu后应该加上rszu.close
rszu并没有每次都被重新定义。而是指被定义了一次。

给分吧。
[解决办法]
对象不用时记得将其关闭
SET CN=NOTHING
SET SRS=NOTHING
[解决办法]
rszu.Open sqlzu, Conn, 1, 1
在循环内,打开后关闭就可以了
[解决办法]

Private Sub Form_Load()
Dim nodX As Node
Dim i As Integer
TreeView1.LineStyle = tvwRootLines ' Linestyle 1显示+/-号

opendb
Dim rs As New ADODB.Recordset

Dim sql As String
Dim sqlzu As String

sql = "select * from cun "
rs.Open sql, Conn, 1, 1
Dim rszu As New ADODB.Recordset
While Not rs.EOF
Set nodX = TreeView1.Nodes.Add(, , "k " & rs.Fields( "cbhao "), rs.Fields( "cming "))

sqlzu = "select * from zu where cbhao like ' " & rs.Fields( "cbhao ") & " ' "
rszu.Open sqlzu, Conn, 1, 1

rs.MoveNext
Wend


End Sub

运行后提示 "提示对象打开,不允许操作 ",请高手帮忙看看为什么会这样?

热点排行
Bad Request.