我做的是一个题库管理例子.表DuoXuan,字段:Zhang_id、Jie_id
在“添加模块”里面添加以下代码:
Public Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset
Dim mycon As ADODB.Connection
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = connstring
mycon.Open
Dim stokens() As String
On Error GoTo exectuesql_error
stokens = Split(sql)
If InStr("INSER,DELETE,UPDATE", UCase(stokens(0))) Then
      mycon.Execute sql
Else
  Set rst = New ADODB.Recordset
  rst.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
 Set ExecuteSQL = rst
End If
exectuesql_exit:
  Set rst = Nothing
  Set mycon = Nothing
  Exit Function
exectuesql_error:
  Resume exectuesql_exit
End Function
Public Function connstring() As String
connstring = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "\数据库名字;"
在Form_Load添加:
Private Sub Form_Load()
TreeView1.Nodes.Clear
Dim nodex As Node
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim str As String
Dim a As String
a = "章"
Set nodex = TreeView2.Nodes.Add(, , "r", "船舶管理题库")
nodex.Expanded = True
str = "select distinct Zhang_id from DuoXuan order by Zhang_id"
Set mrc = ExecuteSQL(str)
str = "select distinct Zhang_id,Jie_id from DuoXuan order by Zhang_id,Jie_id"
Set mrc1 = ExecuteSQL(str)
mrc.MoveFirst
Do Until mrc.EOF
  mrc1.MoveFirst
  Set nodex = TreeView2.Nodes.Add(, , a, "第" & mrc.Fields(0) & "章")
  Do While Not mrc1.EOF
   If mrc1.Fields(0) = mrc.Fields(0) Then
     Set nodex = TreeView2.Nodes.Add(a, tvwChild, , "第" & mrc1.Fields(1) & "节")
   End If
   mrc1.MoveNext
  Loop
  a = a & "1"
  mrc.MoveNext
Loop
 mrc1.close
 mrc.close
 Set mrc = Nothing
 Set mrc1 = Nothing
End Function
End Sub

解决方案 »

  1.   

    //先定义: dim myNod as node //然后添加节点: set myNod=控件名.nodes.add(a,b,key,text,image) 
    参数说明: a: 参照物,在谁的基础上建节点,a就是谁的key值,如果是跟节点,可省略. 
    b: 参照物和本身的关系,如果是父子关系,值为tvwchile,如果是兄弟关系,值为tvwnext 
    key: 关键字,唯一的. 
    text: 节点上显示的文字 
    image: 节点前的小图标,需要配合图标控件用,可省略 
    //得到属性: node.key node.text 等等.. 
    //例子,假设控件名为tv1: 
    dim myNod as node 
    set myNod=tv1.nodes.add(,tvwchild,"china","中国") 
    set myNod=tv1.nodes.add("china",tvwchild,"hb","河北") 
    set myNod=tv1.nodes.add("china",tvwchild,"sx","山西") 
    set myNod=tv1.nodes.add("hb",tvwchild,"1","石家庄") 
    set myNod=tv1.nodes.add("sx",tvwchild,"2","太原") 
      

  2.   

    Private Sub Command1_Click()
      Totel = Data1.Recordset.RecordCount
      Data1.Caption = Totel
      ProgressBar1.Max = Totel
      Do While Data1.Recordset.EOF = False
         For i = 0 To 4
          Str(i) = Data1.Recordset.Fields(i).Value
         Next
         Max = Max + 1
         ProgressBar1.Value = Max
         Set mNode = TreeView1.Nodes.Add("Root", tvwChild, "Str" & CStr(Id), Str(0))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 1), Str(1))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 2), Str(2))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 3), Str(3))
         Data1.Recordset.MoveNext
         Id = Id + 4
     Loop
         
    Set mNode = Nothing