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