Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

很少的代码把列表框改造成树结构

时 间:2013-12-27 16:43:43
作 者:蟹仔   ID:3945  城市:广州
摘 要:列表框,树结构,目录树
正 文:

点击下载此附件

 

     论坛里面有很多做得很好的目录树,可惜这个控件不是所有计算机都自带的。导致用了这个控件会让某些电脑不能正常显示。所以最好的办法是利用列表框去改造一个,论坛里面有一个现有的树形列表框。看了一下代码有点复杂。新手理解可能稍微有点复杂,所以我就重写了个新的。

Private Sub Form_Load()
Dim i As Integer
Dim strsql As String
strsql = ""
For i = 1 To DMax("大类", "类别")
If DCount("类型名称", "类别", "大类=" & i & "") > 1 Then
strsql = strsql & " select 大类,小类,'+' & 类型名称 as 菜单名 from 类别 where 小类=0 and 大类=" & i & "" & " union "
Else
strsql = strsql & " select 大类,小类,' ' & 类型名称 as 菜单名 from 类别 where 小类=0 and 大类=" & i & "" & " union "
End If
Next
 
Me.列表框.RowSource = Left(strsql, Len(strsql) - 6) & " order by 大类,小类"
End Sub
 
Private Sub 列表框_Click()
    Dim strsql As String
    If Me.列表框.Column(1) = 0 Then
        If Me.列表框.ListIndex + 1 = Me.列表框.ListCount or Me.列表框.Column(0, Me.列表框.ListIndex + 1) <> Me.列表框.Column(0) Then
            If DCount("类型名称", "类别", "大类=" & Me.列表框.Column(0) & "") > 1 Then
                strsql = Left(Me.列表框.RowSource, Len(Me.列表框.RowSource) - 15)
                strsql = strsql & " union select 大类,小类,'  └' & 类型名称 as 菜单名 from 类别 where 小类<>0 and 大类=" & Me.列表框.Column(0) & ""
                Me.列表框.RowSource = strsql & " order by 大类,小类"
            End If
        Else
            Call Form_Load
        End If
    End If
End Sub



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助