RS1是作者的记录集,RS2是作品的记录集:下面用一个笨方法做之,如果实现多层显示,最好用递归。dim nd as node
for i = 1 t rs1.recordcount
  set nd = treeview1.nodes.add "A" & rs1("ID").value, rs1("Name")
  for j=1 to rs2.recordcount
    if rs2("AuthorID")= rs1("ID") then
      treeview1.nodes.add ,rs2("workname")
    end if
  next j
next i

解决方案 »

  1.   

    刚才错了,应该是:
    dim nd as node
    for i = 1 t rs1.recordcount
      set nd = treeview1.nodes.add ,,"A" & rs1("ID").value, rs1("Name")
      for j=1 to rs2.recordcount
        if rs2("AuthorID")= rs1("ID") then
          treeview1.nodes.add nd,tvwchild,,rs2("workname")
        end if
      next j
    next i
      

  2.   

    Private Sub cmdLoad_Click()
       Dim rsPublishers As Recordset
       Dim rsTitles As Recordset
       Set rsPublishers = mDbBiblio. _
       OpenRecordset("Publishers", dbOpenDynaset)
       Dim intIndex
       Do Until rsPublishers.EOF
          Set mNode = tvwDB.Nodes.Add(1, tvwChild)
          mNode.Text = rsPublishers!Name
          mNode.Tag = "Publisher" '标识表。
          mNode.Key = rsPublishers!PubID & " ID" 
          mNode.Image = "closed"
          intIndex = mNode.Index
          '对这条记录,使用查询创建 Title 表的记录集,
          '查询条件是所有包含相同 PubID 的记录。对结果记录集中
          '的每一条记录,在 TreeView 控件中加入一个 Node 对象,
          '并用记录的 Title、 ISBN 和 Author 字段为新
          'Node 对象的属性赋值。
          Set rsTitles = mDbBiblio.OpenRecordset _
          ("select * from Titles Where PubID = " & _
          rsPublishers!PubID)
          Do Until rsTitles.EOF
             Set mNode = tvwDB.Nodes. _
             Add(intIndex, tvwChild)
             mNode.Text = rsTitles!TITLE   '文本。
             mNode.Key = rsTitles!ISBN      '唯一的 ID。
             mNode.Tag = "Authors"      '表名。
             mNode.Image = "smlBook"      '图象。
             '移动到 rsTitles 中的下一个记录。
             rsTitles.MoveNext 
          Loop
          '移动到下一个 Publishers 记录。
          rsPublishers.MoveNext
       Loop
    End Sub
      

  3.   

    Set mNode = tvwDB.Nodes.Add(1, tvwChild)这条语句有问题,索引超出边界