我的数据库表 Area
 AreaId  AreaName  AreaType  AreaupperId
  1       中国       1         全球
  2       美国       1         全球
  3       福建       2         中国
  4       上海       2          中国
  5       华盛顿     2          美国
  6       浦东       3          上海
我的要求是在‘全球’下面显示‘中国’、‘美国’然后在‘中国’下面显示‘福建’、‘上海’,在‘美国’下面显示‘华盛顿’,在‘上海’下面显示‘浦东’。而且以后如果添加其它资料的话,也可在下面显示比如添加‘浙江’的话,就会在‘中国’下面显示 。有扰各位大虾帮忙!分不够再给1

解决方案 »

  1.   

    treeview.nodes.add "全球",tvwchild,"中国","中国","ICO","ICO"
    treeview.nodes.add "全球",tvwchild,"美国","美国","ICO","ICO"
    treeview.nodes.add "中国",tvwchild,"福建","福建","ICO","ICO"
    treeview.nodes.add "中国",tvwchild,"上海","上海","ICO","ICO"
    treeview.nodes.add "中国",tvwchild,"浙江","浙江","ICO","ICO"
    treeview.nodes.add "美国",tvwchild,"华盛顿","华盛顿","ICO","ICO"
    treeview.nodes.add "上海",tvwchild,"浦东","浦东","ICO","ICO"
    看得明白吧?"ICO"是使用的图标
    查查MSDN
      

  2.   

    D:\Program Files\Microsoft Visual Studio\MSDN\2000JUL\1033\SAMPLES\VB98\Datatree
      

  3.   

    Private Sub Form_Load()
    '‘工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"
        CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from table1", CN, adOpenDynamic, adLockOptimistic
        
        TreeView1.Nodes.Add , , Trim("全球"), Trim("全球")
        Rs.MoveFirst
        Do While Not Rs.EOF
            
            TreeView1.Nodes.Add CStr(Trim(Rs.Fields("areaupperid"))), tvwChild, Trim(Rs.Fields("areaname")), Trim(Rs.Fields("areaname"))
            Rs.MoveNext
        Loop
        For i = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(i).Expanded = True
        Next
    End Sub
      

  4.   

    Private Sub Form_Load()
    '‘工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"
        CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from table1", CN, adOpenDynamic, adLockOptimistic
        
        TreeView1.Nodes.Add , , Trim("全球"), Trim("全球")
        Rs.MoveFirst
        Do While Not Rs.EOF
            
            TreeView1.Nodes.Add CStr(Trim(Rs.Fields("areaupperid"))), tvwChild, Trim(Rs.Fields("areaname")), Trim(Rs.Fields("areaname"))
            Rs.MoveNext
        Loop
        For i = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(i).Expanded = True
        Next
    End Sub
      

  5.   

    Private Sub Form_Load()
    '‘工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"
        CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from Area order by areaid", CN, adOpenDynamic, adLockOptimistic
        
        TreeView1.Nodes.Add , , Trim("全球"), Trim("全球")
        Rs.MoveFirst
        Do While Not Rs.EOF
            If Rs.Fields("areatype") = 1 Then
                TreeView1.Nodes.Add "全球", tvwChild, Trim(Rs.Fields("areaname")), Trim(Rs.Fields("areaname"))
            Else
                TreeView1.Nodes.Add CStr(Trim(Rs.Fields("areaupperid"))), tvwChild, Trim(Rs.Fields("areaname")), Trim(Rs.Fields("areaname"))
            End If
            Rs.MoveNext
        Loop
        For i = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(i).Expanded = True
        Next
    End Sub
      

  6.   

    to:李洪根:好象不行用trim(rs.fields("areaname"))做关键字,我运行了出现提示:项目在所需的名称或序数中未被发现
      

  7.   

    这么简单的问题自己查MSDN就行,还跑到这里来问,越问越糊涂啊!
      

  8.   

    建议你看看msdn中的Datatree例子
    很有帮助的
      

  9.   

    :项目在所需的名称或序数中未被发现trim(rs.fields("areaname")) 
    是没有areaname这个字段才会报这个错,你查一下你的表,或者连接,看对不对
      

  10.   

    我改好了!因为作为关键字不能用汉字了!我把它改成Cstr(trim(rs.fields("areaname"))
      

  11.   

    李洪根:我现在通过窗体添加数据也能保存在表里,但是我想添加完form能够及时的显示出新的数据,
    我通过再次调用form-load的代码,出现的错误是集合里的关键字不是唯一的!
    这个问题该怎么解决?
      

  12.   

    Private Sub Form_Load()
    '‘工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"
        CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from table1", CN, adOpenDynamic, adLockOptimistic
        
        TreeView1.Nodes.Add , , Trim("全球"), Trim("全球")
        Rs.MoveFirst
        Do While Not Rs.EOF
            
            TreeView1.Nodes.Add CStr(Trim(Rs.Fields("areaupperid"))), tvwChild, Trim(Rs.Fields("areaname")), Trim(Rs.Fields("areaname"))
            Rs.MoveNext
        Loop
        For i = 1 To TreeView1.Nodes.Count
            TreeView1.Nodes(i).Expanded = True
        Next
    End Sub