您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> ACCESS >> 辅导 >> 正文    
  如何实现带树形结构的组合框和列表框 【注册男护士专用博客】          

如何实现带树形结构的组合框和列表框

www.nanhushi.com     佚名   不详 

  问题详述

  在对产品或客户进行分类时,类别需要多层分类结构,也就是常见的树形结构,但access的组合框和列表框都不支持树形结构,只能通过Treeview这个ActiveX控件来实现,不知有没有方法能够在组合框和列表框中实现树形结构呢?

  专家解答

  组合框和列表框的行来源属性可为表或查询,由于组合框和列表框本身的限制,无法直接实现树形结构,所以只能在行来源属性上想办法。创建一个查询,然后通过函数来将数据的内容转换成树形结构的格式,由于组合框和列表框的数据来源于查询,所以就间接地实现了带树形结构的组合框和列表框。

  首先创建一个通用函数,用来实现树形结构的查询结果,详细代码如下。

  Public Function GetNodeText(rlngDepth As Long, rlngNextId As Long, rstrClassName As String) As String

  Dim sqlClass As String

  Dim strTemp As String

  Dim tmpDepth As Integer

  Dim i As Integer

  Dim arrShowLine(20) As Boolean

  For i = 0 To UBound(arrShowLine)

  arrShowLine(i) = False

  Next

  tmpDepth = rlngDepth

  If rlngNextId > 0 Then

  arrShowLine(tmpDepth) = True

  Else

  arrShowLine(tmpDepth) = False

  End If

  strTemp = ""

  If tmpDepth = 2 Then

  End If

  If tmpDepth > 0 Then

  For i = 1 To tmpDepth

  strTemp = strTemp & " "

  If i = tmpDepth Then

  If rlngNextId > 0 Then

  strTemp = strTemp & "├ "

  Else

  strTemp = strTemp & "└ "

  End If

  Else

  If i = 1 Then

  strTemp = strTemp & "│"

  Else

  strTemp = strTemp & " "

  End If

  End If

  Next

  End If

  GetNodeText = strTemp & rstrClassName

  End Function

  然后创建一个查询,查询中使用了上面这个自定义函数进行数据格式转换,查询的语法如下。

  SELECT GetNodeText([depth],[NextId],[classname]) AS NodeText, *

  FROM SoftClass

  ORDER BY SoftClass.RootID, SoftClass.OrderID;

  最后创建一个新的窗体,在窗体上放置一个组合框及列表框,它们的行来源都设置如下。

  SELECT qryClass.NodeText, qryClass.ClassID FROM qryClass;

  打开窗体到“窗体视图”状态,可看到带树形结构的组合框和列表框的效果。

  专家点评

  这个例子从查询上实现了树形结构,但在组合框和列表框的实现上还并不完全具备Treeview的所有属性,如双击结点进行展开和收缩、结点图标等。如果要实现展开和收缩功能,需要对组合框和列表框再进行编程,判断当前选择的项目是子结点还是父结点,然后相应改变组合框和列表框行来源对应的查询的内容,再刷新组合框和列表框来实现结点的展开和收缩功能。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。