为何数据库无法打开
Private Sub listtree() '用于显示treeview的数据
TreeView1.Nodes.Clear
Dim nodX As Node
Dim i As Integer
TreeView1.LineStyle = tvwRootLines ' Linestyle 1显示+/-号
opendb
Dim rsel As New ADODB.Recordset
Dim sqlel As String
Dim sqlsl As String
Dim sqlsil As String
sqlel = "select * from elei where ylbhao like '11 ' "
rsel.Open sqlel, Conn, 1, 1
While Not rsel.EOF
Set nodX = TreeView1.Nodes.Add(, , "k " & rsel.Fields( "elbhao "), rsel.Fields( "mchen "))
Dim rssl As New ADODB.Recordset
sqlsl = "select * from slei where elbhao like ' " & rsel.Fields( "elbhao ") & " ' "
rssl.Open sqlsl, Conn, 1, 1
While Not rssl.EOF
Set nodX = TreeView1.Nodes.Add( "k " & rsel.Fields( "elbhao "), tvwChild, "k " & rssl.Fields( "slbhao "), rssl.Fields( "mchen "))
Dim rssil As New ADODB.Recordset
sqlsil = "select * from silei where slbhao like ' " & rssl.Fields( "slbhao ") & " ' "
rssil.Open sqlsil, Conn, 1, 1 '此处提示:实时错误 '-2147217887(80040e21) ':
' While Not rssil.EOF
' Set nodX = TreeView1.Nodes.Add( "k " & rssil.Fields( "slbhao "), tvwChild, "k " & rssil.Fields( "silbhao "), rssil.Fields( "mchen "))
' rssil.MoveNext
' Wend
rssl.MoveNext
Wend
rssl.Close
rsel.MoveNext
Wend
End Sub
[解决办法]
至少在do while ....中间用Dim rssil As New ADODB.Recordset是不对的。
[解决办法]
同楼上意见
你可以把树一层层加,没必要把rs去嵌套
[解决办法]
用递归调用来实现吧
[解决办法]
Private Sub listtree() '用于显示treeview的数据
TreeView1.Nodes.Clear
Dim nodX As Node
Dim i As Integer
TreeView1.LineStyle = tvwRootLines ' Linestyle 1显示+/-号
opendb
Dim rsel As New ADODB.Recordset
Dim sqlel As String
Dim sqlsl As String
Dim sqlsil As String
Dim rssl As ADODB.Recordset '修改了这里
Dim rssil As ADODB.Recordset '修改了这里
sqlel = "select * from elei where ylbhao like '11 ' "
rsel.Open sqlel, Conn, 1, 1
While Not rsel.EOF
Set nodX = TreeView1.Nodes.Add(, , "k " & rsel.Fields( "elbhao "), rsel.Fields( "mchen "))
set rssl=new adodb.recordset '修改了这里
sqlsl = "select * from slei where elbhao like ' " & rsel.Fields( "elbhao ") & " ' "
rssl.Open sqlsl, Conn, 1, 1
While Not rssl.EOF
Set nodX = TreeView1.Nodes.Add( "k " & rsel.Fields( "elbhao "), tvwChild, "k " & rssl.Fields( "slbhao "), rssl.Fields( "mchen "))
set rssil=new adodb.recordset '修改了这里
sqlsil = "select * from silei where slbhao like ' " & rssl.Fields( "slbhao ") & " ' "
rssil.Open sqlsil, Conn, 1, 1 '此处提示:实时错误 '-2147217887(80040e21) ':
' While Not rssil.EOF
' Set nodX = TreeView1.Nodes.Add( "k " & rssil.Fields( "slbhao "), tvwChild, "k " & rssil.Fields( "silbhao "), rssil.Fields( "mchen "))
' rssil.MoveNext
' Wend
rssil.close '修改了这里
set rssil=nothing '修改了这里
rssl.MoveNext
Wend
rssl.Close
set rssl=nothing '修改了这里
rsel.MoveNext
Wend
rsel.close '修改了这里
set rsel=nothing '修改了这里
End Sub
[解决办法]
sqlsil = "select * from silei where slbhao like ' " & rssl.Fields( "slbhao ") & " ' "
rssil.Open sqlsil, Conn, 1, 1 '此处提示:实时错误 '-2147217887(80040e21) ':
rssl.Fields( "slbhao ")此项是否有效呢?