我的数据库结构是这样的:  ID            FID
10210          null
BQ11010        10210 
BQ11011        10210
2021           null
BQ20221        2021 
BQ25654        2021 我想显示为数的结构:10210
    --BQ11010
    --BQ11011
2021
    --BQ20221
    --BQ25654我的代码是这样的:
  rs1.Open "select * from 表 where FID=null", cnn, adOpenDynamic, adLockReadOnly
  
  TV.LineStyle = tvwRootLines
  TV.Style = tvwTreelinesPlusMinusPictureText
    Do While Not rs1.EOF
       Set nodx = TV.Nodes.Add(, , "key" & rs1.Fields("ID"), rs1.Fields("ID"))
       rs2.Open "select * from 表 where FID ='" & Trim(rs1.Fields("ID")) & "' ", cnn, adOpenDynamic, adLockReadOnly       Do While Not rs2.EOF
         Set nodx = TV.Nodes.Add("key" & rs1.Fields("ID"), tvwChild, "key" & rs2.Fields("ID"), rs2.Fields("ID"))
         rs2.MoveNext
            nodx.EnsureVisible
       Loop
           rs1.MoveNext
    Loop
    
  TV.Refresh错误提示:这句话
         Set nodx = TV.Nodes.Add("key" & rs1.Fields("ID"), tvwChild, "key" & rs2.Fields("ID"), rs2.Fields("ID"))
未发现元素各位帮忙看看,哪里出了问题,谢谢!

解决方案 »

  1.   

    '要保证你的父Key,与你添加子时的父Key一致,我看你添加父Key时没用Trim,添加子时父Key
    '又加了Trim,你可对添加父结点的语句改为:
     Set nodx = TV.Nodes.Add(, , "key" & trim(rs1.Fields("ID")), trim(rs1.Fields("ID")))
      

  2.   

    SRY,看错了你这样吧,单步跟踪一下,看看是哪个父结点的子节点时出错...
      

  3.   

    rs1.Open "select * from 表 where FID=null", cnn, adOpenDynamic, adLockReadOnly改为rs1.Open "select * from 表 where FID  is null", cnn, adOpenDynamic, adLockReadOnly
      

  4.   

    试试:
    dim i
    ......
    Do While Not rs1.EOF
        Set nodx = TV.Nodes.Add(, , "key" & rs1.Fields("ID"), rs1.Fields("ID"))
        i = mNode.index
        rs2.Open "select * from 表 where FID ='" & Trim(rs1.Fields("ID")) & "' ", cnn, adOpenDynamic, adLockReadOnly    Do While Not rs2.EOF
            Set nodx = TV.Nodes.Add(i,tvwChild, "key" & rs2.Fields("ID"), rs2.Fields("ID"))
            rs2.MoveNext
            nodx.EnsureVisible
        Loop
        rs1.MoveNext
    Loop
      

  5.   

    Do While Not rs1.EOF
        Set nodx = TV.Nodes.Add(, , "key" & rs1.Fields("ID"), rs1.Fields("ID"))
        i = nodx.index
        rs2.Open "select * from 表 where FID ='" & Trim(rs1.Fields("ID")) & "' ", cnn, adOpenDynamic, adLockReadOnly    Do While Not rs2.EOF
            Set nodx = TV.Nodes.Add(i,tvwChild, "key" & rs2.Fields("ID"), rs2.Fields("ID"))
            rs2.MoveNext
            nodx.EnsureVisible
        Loop
        rs1.MoveNext
    Loop
      

  6.   

    '======look
    rst.open "select * from table"
    do while not rst.eof 
      if rst("fid")&""="" then'第一层
         Tview1.nodes.add ,,"key"&rst("id"),rst("id")
      else'第二层
         Tview1.nodes.add "key"&rst("fid"),tvwchild,"key"&rst("id"),rst("id")
      end if
     rst.movenext
    loop