上级部门,       本部门
e00               e10
e10               e11
e20               e21
e20               e22
……              ……我想查找e00的所有下级部门,即返回结果e00,e10,e11,e20,e21,e22……(顺序无所谓),可是我使用下面的函数,只能找到e00,e10,e11,e20,而e11,e21,e22由于没有下级部门,就返回不了,怎么解决啊??Private Function JuniorDept(ByVal Dept As String)
    
    Sql = "select 本部門 from department where 上級部門='" & Dept & "'"
    rs.Open Sql, Cnn, 3, 1, 1    While Not rs.EOF
        DeptAll = "'" & rs!本部門 & "'" & "," & DeptAll
        JuniorDept (rs!本部門)
        rs.MoveNext
    Wend
    
    JuniorDept = "'" & Dept & "'," & DeptAll
End Function

解决方案 »

  1.   

    好像是变量定义有问题,我定义dim DeptAll  as string 
    如果放到form中定义全局变量,或则static DeptAll  as string ,可以返回正确值,但会重复,变成e00,e10,e11,e20,e21,e22,e00,e10,e11,e20,e21,e22
    如何把static变量还原啊?
      

  2.   

    helphelphelphelphelphelphelphelphelphelphelphelphelphelphelphelphelp
      

  3.   

    根本看不懂你的数据结构
     我就看懂了你的e00的所有下级部门包括自己,是e00,e10,e11..
     e20怎么也不不出来是e00的下级!!
      

  4.   

    //e20怎么也不不出来是e00的下级!!漏了一个条件:e20的上级部门是e00我的意思是,要查找书e00的所有下级部门,包括直接下级部门和间接下级部门
      

  5.   

    Private Function JuniorDept(ByVal Dept As String)
        
        Sql = "select 本部門 from department where 上級部門='" & Dept & "'"
        rs.Open Sql, Cnn, 3, 1, 1
        JuniorDept= Dept 
        While Not rs.EOF
            JuniorDept=JuniorDept  & "," &  JuniorDept(rs!本部門)
            rs.MoveNext
        Wend
        
    End Function