象这样: Dim CN As New ADODB.Connection Dim Rs As New ADODB.Recordset
CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=Report;User Id=sa;Password=sa;" CN.Open Rs.CursorLocation = adUseClient Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic Rs.MoveFirst Do While Not Rs.EOF Select Case Len(Trim(Rs.Fields("lno"))) Case 3 TreeView1.Nodes.Add , , "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname") Case 5 TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 3), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname") Case 7 TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 5), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
End Select Rs.MoveNext Loop Rs.Close CN.Close For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = True Next
Public Sub AddNodes() Dim strkey As String Dim mNodes As MSComctlLib.Nodes Dim mNode1 As MSComctlLib.Node Dim mNode2 As MSComctlLib.NodeDim I As LongOn Error Resume NextSet mNodes = tvwMain.Nodes Dim rs1 As ADODB.Recordset Set rs1 = New ADODB.Recordset With rs1 Set .ActiveConnection = conn .CursorLocation = adUseClient .Source = "select id,mc from lb order by ID" .LockType = adLockReadOnly .CursorType = adOpenForwardOnly .Open End WithmNodes.Clear With rs1 If .EOF And .BOF Then Set rs1 = Nothing Exit Sub End If For r = 1 To .RecordCount strkey = "o" & .Fields("ID") Set mNode1 = mNodes.Add(, , strkey, .Fields("mc") & "", 7, 7) '第二层循环 Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset
strsql = "select * from ws where mid=" & .Fields("id") rs.Open strsql, conn, adOpenStatic, adLockPessimistic For j = 1 To rs.RecordCount Key = "t" & rs.Fields("id") Set mNode2 = mNodes.Add(mNode1.Index, tvwChild, Key, rs.Fields("mc"), 7, 7) rs.MoveNext Next .MoveNext Next .Close End WithSet rstNodes = Nothing On Error GoTo 0 End Sub http://expert.csdn.net/Expert/topic/1699/1699441.xml?temp=.2040674
Dim Rs As New ADODB.Recordset
CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=Report;User Id=sa;Password=sa;"
CN.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from table1", CN, adOpenDynamic, adLockBatchOptimistic
Rs.MoveFirst
Do While Not Rs.EOF
Select Case Len(Trim(Rs.Fields("lno")))
Case 3
TreeView1.Nodes.Add , , "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
Case 5
TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 3), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
Case 7
TreeView1.Nodes.Add "key" & Left(Trim(Rs.Fields("lno")), 5), tvwChild, "key" & Trim(Rs.Fields("lno")), Rs.Fields("lname")
End Select
Rs.MoveNext
Loop
Rs.Close
CN.Close
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True
Next
Dim strkey As String
Dim mNodes As MSComctlLib.Nodes
Dim mNode1 As MSComctlLib.Node
Dim mNode2 As MSComctlLib.NodeDim I As LongOn Error Resume NextSet mNodes = tvwMain.Nodes
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
With rs1
Set .ActiveConnection = conn
.CursorLocation = adUseClient
.Source = "select id,mc from lb order by ID"
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open
End WithmNodes.Clear
With rs1
If .EOF And .BOF Then
Set rs1 = Nothing
Exit Sub
End If
For r = 1 To .RecordCount
strkey = "o" & .Fields("ID")
Set mNode1 = mNodes.Add(, , strkey, .Fields("mc") & "", 7, 7)
'第二层循环
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
strsql = "select * from ws where mid=" & .Fields("id")
rs.Open strsql, conn, adOpenStatic, adLockPessimistic
For j = 1 To rs.RecordCount
Key = "t" & rs.Fields("id")
Set mNode2 = mNodes.Add(mNode1.Index, tvwChild, Key, rs.Fields("mc"), 7, 7)
rs.MoveNext
Next
.MoveNext
Next
.Close
End WithSet rstNodes = Nothing
On Error GoTo 0
End Sub
http://expert.csdn.net/Expert/topic/1699/1699441.xml?temp=.2040674