我用ACCESS做后台库,VB做前台界面,ADO对象方法。
库中有GSB、BMB、BZB、DAB(工资表、部门表、班组表、档案表)如何能让TREEVIEW实现以下功能?公司名称
     ---部门1
          ----班组1
                ---职员1
                ---职员2
                ---职员3
          ----班组2
                ---职员4
                ---职员5
                ---职员6
     ---部门2
          ----班组3
                ---职员7
                ---职员8
                ---职员9
          ----班组4
                ---职员10
                ---职员11
                ---职员12类似以上形状还需要可以让用户自行添加,并存入ACCESS库的各自表中。应该如何写它的循环?我都折腾一天了。
谢谢各位大侠!

解决方案 »

  1.   

    Private Sub Form_Load()
    '加载部门信息
    Dim drst As New ADODB.Recordset
    Dim lrst As New ADODB.Recordset
    Dim trst As New ADODB.Recordset
    TreeView1.Nodes.Add , , "top", "部门结构", 4
    drst.Open "select * from Department where deptype=1 order by depNo", cn, adOpenDynamic, adLockOptimistic
    '若记录集为空
    If drst.EOF Then Exit Sub
    drst.MoveFirst
    Do Until drst.EOF
        TreeView1.Nodes.Add "top", tvwChild, "dep" & Mid(drst(0), 1, 2), drst(1), 1
        lrst.Open "select * from department where deptype=2 and depno like '" & Mid(drst(0), 1, 2) & "%' order by depno", cn, adOpenDynamic, adLockOptimistic
            Do Until lrst.EOF
                TreeView1.Nodes.Add "dep" & Mid(drst(0), 1, 2), tvwChild, "dep" & Mid(lrst(0), 1, 4), lrst(1), 2
                    trst.Open "select * from department where deptype=3 and depno like '" & Mid(lrst(0), 1, 4) & "%' order by depno", cn, adOpenDynamic, adLockOptimistic
                       Do Until trst.EOF
                        TreeView1.Nodes.Add "dep" & Mid(lrst(0), 1, 4), tvwChild, "dep" & trst(0), trst(1), 3
                        trst.MoveNext
                       Loop
                    trst.Close
                lrst.MoveNext
            Loop
        lrst.Close
        drst.MoveNext
    Loop
    End Sub
      

  2.   

    我作了一个与搂住的问题及其相似    Dim objRsDepartment As ADODB.Recordset  ‘部门记录
        Dim objRsPosition As ADODB.Recordset     ‘职位记录
        Dim objRsWorkers As ADODB.Recordset       ’职员记录
             
        tvwSet.ImageList = ilsSmall                                 '指定图像列表
        tvwSet.Nodes.Add , , "Root", "公司结构", "Folder"           '添加根节点
        
        Set objRsDepartment = New ADODB.Recordset                   '添加部门节点
        If funGetDepartment_bln(objRsDepartment) = True Then
            i = 1
            While Not objRsDepartment.EOF
                tvwSet.Nodes.Add "Root", tvwChild, "D_" & i, objRsDepartment("Department").value, "Department"
                i = i + 1
                objRsDepartment.MoveNext
            Wend
        End If
        
        i = 1
        objRsDepartment.MoveFirst
        While Not objRsDepartment.EOF
            Set objRsPosition = New ADODB.Recordset                 '添加职位节点
            If funGetPosition_bln(objRsPosition, objRsDepartment("Department").value) = True Then
                While Not objRsPosition.EOF
                    tvwSet.Nodes.Add "D_" & i, tvwChild, "P_" & objRsPosition("ID").value, objRsPosition("WorkPosition").value, "Position"
                    objRsPosition.MoveNext
                Wend
            End If
            i = i + 1
            Set objRsPosition = Nothing
            objRsDepartment.MoveNext
        Wend
        
        Set objRsDepartment = Nothing
        
        Set objRsWorkers = New ADODB.Recordset                      '添加职员节点
        If funGetWorkers_bln(objRsWorkers) = True Then
            While Not objRsWorkers.EOF
                If objRsWorkers("Sex").value = "男" Then
                    tvwSet.Nodes.Add "P_" & objRsWorkers("PositionID").value, tvwChild, "W_" & objRsWorkers("ID").value, objRsWorkers("Name").value, "Boy"
                Else
                    tvwSet.Nodes.Add "P_" & objRsWorkers("PositionID").value, tvwChild, "W_" & objRsWorkers("ID").value, objRsWorkers("Name").value, "Girl"
                End If
                objRsWorkers.MoveNext
            Wend
        End If
        Set objRsWorkers = Nothing