Private Sub Form_Load()
Dim strkey As String
Dim mNodes As MSComctlLib.Nodes
Dim mNode1 As MSComctlLib.Node
Dim I As Long
On Error Resume Next
Set mNodes = tvwMain.Nodes
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
With rs1
Set .ActiveConnection = conn
.CursorLocation = adUseClient
.Source = "select n from mz group by n order by n"
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open
End With
mNodes.Clear
With rs1
If .EOF And .BOF Then
Set rs1 = Nothing
Exit Sub
End If
For r = 1 To .RecordCount
strkey = "l" & .Fields("ID")
Set mNode1 = mNodes.Add(, , strkey, .Fields("n") & "")
'第二层循环
AddSecondNodes mNode1, .Fields("n")
.MoveNext
Next
.Close
End With
Set rs1 = Nothing
On Error GoTo 0
End Sub
Public Sub AddSecondNodes(mNode As MSComctlLib.Node, lID As String)
Dim strkey As String
Dim mNodes As MSComctlLib.Nodes
Dim mNode2 As MSComctlLib.Node
Dim I As Long
On Error Resume Next
Set mNodes = tvwMain.Nodes
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = conn
.CursorLocation = adUseClient
.Source = "select m from mz where n='" & lID & "' group by n,m order by m"
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open
End With
With rs
If .EOF And .BOF Then
Set rs = Nothing
Exit Sub
End If
For r = 1 To .RecordCount
Set mNode2 = mNodes.Add(mNode, tvwChild, , .Fields("m"))
AddthreeNodes mNode2, lID, .Fields("m")
.MoveNext
Next
.Close
End With
Set rs = Nothing
End Sub
Public Sub AddthreeNodes(mNode As MSComctlLib.Node, lID As String, m As String)
Dim strkey As String
Dim mNodes As MSComctlLib.Nodes
Dim mNode3 As MSComctlLib.Node
Dim I As Long
On Error Resume Next
Set mNodes = tvwMain.Nodes
Dim rs3 As ADODB.Recordset
Set rs3 = New ADODB.Recordset
With rs3
Set .ActiveConnection = conn
.CursorLocation = adUseClient
.Source = "select r from mz where n='" & lID & "' and m='" & m & "' order by r"
.LockType = adLockReadOnly
.CursorType = adOpenForwardOnly
.Open
End With
'mNodes.Clear
With rs3
If .EOF And .BOF Then
Set rs3 = Nothing
Exit Sub
End If
For r = 1 To .RecordCount
'Key1 = "p" & .Fields("id")
Set mNode3 = mNodes.Add(mNode, tvwChild, , .Fields("r"))
.MoveNext
Next
.Close
End With