Office中国论坛/Access中国论坛

标题: 找出某节点下属的所有节点 [打印本页]

作者: 鱼儿游游    时间: 2009-9-17 22:28
标题: 找出某节点下属的所有节点
一个表有2个字段: CategoryID 和 ParentID
CategoryID:记录节点的ID
ParentID:  记录节点的ID对应的父节点ID

要求:用一句SQL语句,列出字段 CategoryID 值为 003 的下属所有节点。
目的:用于指定子窗体A的数据源

哪位朋友帮帮忙,多谢了。

作者: andymark    时间: 2009-9-17 23:05
select * from 表 where CategoryID ='003'
作者: 鱼儿游游    时间: 2009-9-17 23:11
003 的下属所有节点呀
作者: 鱼儿游游    时间: 2009-9-17 23:15
用下面的函数能实现,但我想用一句SQL语句,不用中间表,实现以下函数的功能。
Public Sub All_SubID(P_ID As Integer)
    Dim Str1 As String
    Str1 = "SELECT CategoryID INTO LSB FROM GoodsCategory WHERE ParentID=" + CStr(PID)
    DoCmd.SetWarnings False
    DoCmd.RunSQL Str1
    Dim W1 As Boolean
    W1 = True
    While W1
        Str1 = "SELECT CategoryID INTO LSB1 FROM GoodsCategory WHERE ParentID IN (SELECT CategoryID FROM LSB) AND CategoryID NOT IN (SELECT CategoryID FROM LSB)"
        DoCmd.RunSQL Str1
        If DCount("CategoryID", "LSB1") > 0 Then
            Str1 = "INSERT INTO LSB (CategoryID) SELECT CategoryID FROM LSB1"
            DoCmd.RunSQL Str1
        Else
            W1 = False
        End If
    Wend
End Sub
作者: liwen    时间: 2009-9-17 23:28
http://bbs.eyuyan.com/dispbbs.as ... p;page=0&star=1
作者: 鱼儿游游    时间: 2009-9-17 23:54
多谢版主,不过,我的问题还是没有解决。
作者: andymark    时间: 2009-9-18 09:27
搞不清你的要求
作者: Henry D. Sy    时间: 2009-9-21 19:59
把你的表数据贴出来
作者: fan0217    时间: 2009-9-21 20:52
我以前写过一个获取节点的所有子节点,不过是在树中实现的。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3