我现在有一个数据库,里面有产品库,部件库,零件库,现在我想在vb6.0中调用这三个库,把他们中的内容按产品,组件,零件依次生成一个树状目录,但是目前本人对数据结构不太熟悉,希望有过这方面的高手能给在下一些这方面的指导,最好能给出实际的程序例子来,谢谢了!!!
如果分不够,还可以再加100!
谢谢!

解决方案 »

  1.   

    是不是把这些内容现在在例如treeview这样的控件中
    例如这样的结构
    产品1
     --组件1
        --零件1
        --零件2
     --组件2
     --组件3
    产品2
      --组件1
        --零件1
        --零件2
      --组件2如果是这样的话,我可以给你一些例子。
      

  2.   

    下面这段程序就是生成了三层数据,不过这里的数据不是从数据库中加进来的
    如果是用数据库里的数据也是一样的,只要连接数据库,打开里面的表就可以了。Private Sub Command1_Click()
    Dim nodX As Node
    Dim I As Integer
    Dim J As Integer
    Dim K As Integer
    Dim L As IntegerTreeView1.Nodes.Clear
    '  Corporate Office
    Set nodX = TreeView1.Nodes.Add(, , "R", "Corporate Office", 1)'  Regional Level
    For I = 1 To 20
      Set nodX = TreeView1.Nodes.Add("R", tvwChild, "R" & Trim$(Str$(I)), "Region " & Trim$(Str$(I)), 1)
    Next
    nodX.EnsureVisible   ' Make sure all nodes are visible.'  District Level
    J = 1
    For I = 1 To 20
      L = J + 4
      K = J
      For J = K To L
           Set nodX = TreeView1.Nodes.Add("R" & Trim$(Str$(I)), tvwChild, "D" & Trim$(Str$(J)), "District " & Trim$(Str$(J)), 1)
      Next
    Next'  Store Level
    J = 1
    For I = 1 To 100
           L = J + 9
           K = J
           For J = K To L
                Set nodX = TreeView1.Nodes.Add("D" & Trim$(Str$(I)), tvwChild, "S" & Trim$(Str$(J)), "Store# " & Trim$(Str$(J)), 1)
           Next
    Next
       
    End Sub
      

  3.   

    little_sophy(晓晓),我想要的结构就是像你说得那样分三层.但是我把你下面的程序copy进vb6.0中提示"imglist must be initialiszed before it can be uesd",不知是什么错误?还有就是希望您能再给一个和我那个结合比较紧密的程序,谢谢您了.先给您100分!
      

  4.   

    用 object.Add(relative, relationship, key, text, image, selectedimage)
    Add 方法的语法包含下面部分:部分 描述 
    object 必需的。对象表达式,其值是“应用于”列表中的一个对象 
    relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。 
    relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。 
    key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。 
    text 必需的。在 Node 中出现的字符串。 
    image 可选的。在关联的 ImageList 控件中的图像的索引。 
    selectedimage  可选的。在关联的 ImageList 控件中的图像的索引,在 Node 被选中时显示。 
      

  5.   

    只要子节点对应上父节点的键值,就可以动态的建树。
    如果还不清楚,我有个现成的例子,可以给你参考一下。
    给我email^_^我也要分哟。
      

  6.   

    如果需要增加图形就增加一个image就可以了
    如果不需要增加图形 ,只要省约image参数就可以了
    有问题尽管问,我刚好做过不少这个方面的东东
      

  7.   

    '下面是我特意为你写的一个示例小程序,希望能对你有所帮助
    '1: 在sqlserver的查询分析其中执行一下建表代码用于测试,表结构你可以参考建立
    '2:新建一个工程,添加一个treeview控件
    '3:添加Ado引用    工程-〉引用-〉选中Microsoft Activex Data Objects 2.5 Library
    '4:在代码去输入以下代码
    Option Explicit
    Dim cn As New ADODB.ConnectionPrivate Sub FillTree()
    '填充树形节点
    Dim rs1 As New ADODB.Recordset
    Dim rs2 As New ADODB.Recordset
    Dim rs3 As New ADODB.Recordset
    Dim nodRoot   As Node
    Dim nodX      As NodeSet nodRoot = TreeView1.Nodes.Add(, , "r", "根节点")
    nodRoot.Expanded = True
    rs1.Open "select p_id,name from 产品描述表", cn
    Do While Not rs1.EOF
        Set nodX = TreeView1.Nodes.Add("r", tvwChild, "r" & rs1!p_id, rs1!Name)
        nodX.Expanded = True
        rs2.Open "select b.name,a.d_id from 产品表 as a,部件描述表 as b where a.d_id=b.d_id and a.p_id =" & rs1!p_id, cn
        Do While Not rs2.EOF
            Set nodX = TreeView1.Nodes.Add("r" & rs1!p_id, tvwChild, "r" & rs1!p_id & rs2!d_id, rs2!Name)
            nodX.Expanded = True
            rs3.Open "select a.e_id,b.name from 部件表 as a,零件描述表 as b where a.e_id=b.e_id and a.d_id=" & rs2!d_id, cn
            Do While Not rs3.EOF
                Set nodX = TreeView1.Nodes.Add("r" & rs1!p_id & rs2!d_id, tvwChild, "r" & rs1!p_id & rs2!d_id & rs3!e_id, rs3!Name)
                nodX.Expanded = True
                rs3.MoveNext
            Loop
            rs3.Close
            rs2.MoveNext
        Loop
        rs2.Close
        rs1.MoveNext
    Loop
    rs1.Close
    Set rs1 = Nothing
    Set rs2 = Nothing
    Set rs3 = Nothing
        
    End Sub
    Private Sub Form_Load()
    '连接数据库
        cn.Open "Provider=SQLOLEDB;Data Source=servername;User Id=sa;PassWord=****;Initial Catalog=数据库"
        Call FillTree
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        cn.Close
        Set cn = Nothing
    End Sub
      

  8.   

    以下为建立表并插入一些测试数据
    :(你可以在查询分析其中直接运行)
    create table 产品描述表(P_ID int identity(1,1),name varchar(50))
    insert into 产品描述表(name) select '汽车'
    insert into 产品描述表(name) select '火车'
    go
    create table 部件描述表(D_ID int identity(1,1),Name varchar(50))
    insert into 部件描述表(name) select '车轮'
    insert into 部件描述表(name) select '汽车壳'
    insert into 部件描述表(name) select '火车皮'
    insert into 部件描述表(name) select '火车专用椅子'
    go
    create table 零件描述表(E_ID int identity(1,1),Name varchar(50))
    insert into 零件描述表(name) select '1号螺丝'
    insert into 零件描述表(name) select '2号螺丝'
    insert into 零件描述表(name) select '3号螺丝'
    insert into 零件描述表(name) select '铁'
    insert into 零件描述表(name) select '牛皮'
    gocreate table 产品表(P_ID int ,D_ID int)
    insert into 产品表(P_ID,D_ID) select 1,1
    insert into 产品表(P_ID,D_ID) select 1,2
    insert into 产品表(P_ID,D_ID) select 2,1
    insert into 产品表(P_ID,D_ID) select 2,3
    insert into 产品表(P_ID,D_ID) select 2,4
    gocreate table 部件表(D_ID int,E_ID int)
    insert into 部件表(D_ID,E_ID) select 1,2
    insert into 部件表(D_ID,E_ID) select 1,1
    insert into 部件表(D_ID,E_ID) select 2,2
    insert into 部件表(D_ID,E_ID) select 2,4
    insert into 部件表(D_ID,E_ID) select 2,5
    insert into 部件表(D_ID,E_ID) select 3,3
    insert into 部件表(D_ID,E_ID) select 3,4
    insert into 部件表(D_ID,E_ID) select 3,5
      

  9.   

    来信,给你一个带数据库的例子。标明:listview与treeview
      

  10.   

    http://www.sijiqing.com/vbgood/code/index.asp?action=read&id=242
    一个管理VB源码的数据库吐血推荐
    可以任意添加删除