Access数据库培训
网站公告
·Access快速平台QQ群号:277422564    ·Access快速开发平台下载地址及教程    ·欢迎添加微信交流账号:AccessoftChu    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 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交流群 (群号:86789465)       access源码网店

最新评论 查看更多评论(7)

2019/6/10 13:45:25En..
ok了,用 列表框.[Column](2)

2019/6/10 13:32:22En..
新手不会用,树有了,怎么执行双击出效果?

2019/6/10 13:31:47En..
新手不会用,树有了,怎么执行双击效果?

2014/2/25 9:08:40布鲁斯
眼前一亮

2013/12/29 18:19:18蟹仔
这里提供的是一个思路,也就是利用union的联合查询来达到具体目的。而具体到自己的数据库需要稍微改一下了。

发表评论您的评论将提升作者分享的动力!快来评论一下吧!

用户名:
密 码:
内 容:
 

常见问答

技术分类

相关资源

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