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

一个有意思的字典,树形字典 TreeDic

时 间:2021-04-24 11:15:23
作 者:litao   ID:37995  城市:上海
摘 要:最后我用字典,派生出来一个【树形字典TreeDic】,专门处理这种树形数据结构。
正 文:

最近需要处理一些树形结构的数据,在VBA中一直没有太好的办法。用自定义数据类型,没法转换成Variant数据类型传递,而且很不好进行扩展。
使用字典、数组用起来也很麻烦。

最后我用字典,派生出来一个【树形字典TreeDic】,专门处理这种树形数据结构。
特点:
      1、来自字典,具备无限的扩展性。
      2、将Dictionary.Item,划分成3类:树枝 Branch(TreeDic)、果实Object(对象)、树叶Value(值),分别存放3种数据,数量无限制。
      3、通过树枝 Branch进行结构扩展,果实Object 和 树叶Value来存放该节点的数据。

在处理例如:行政区划,多级筛选的数据,非常好用!



演示代码:
Sub cs11()
    Dim TD As New TreeDic
    TD.Value("总人口") = 335
    '--
    Dim whq As TreeDic: Set whq = TD("中国")("四川")("成都")("武侯区")
    whq.Value("面积") = 76.56
    whq.Value("面积单位") = "平方公里"
    Debug.Print whq.Value("面积") & TD("中国")("四川")("成都")("武侯区").Value("面积单位")
    '--
    Dim BZS As TreeDic: Set BZS = TD("中国")("四川")("巴中")
    BZS.Value("电话区号") = "0827"
    Debug.Print BZS.Value("电话区号")
    '--
    Dim JB As TreeDic: Set JB = BZS("江北区")
    JB.Value("邮政编码") = 636099
    Debug.Print TD("中国")("四川")("巴中")("江北区").Value("邮政编码")

    '--
    TD("中国")("四川").Value("人口") = 123456789
    Debug.Print TD("中国")("四川").Value("人口")
End Sub


树形分类统计2.xls


我在另外的网站发了教程,可以看看!

http://club.excelhome.net/thread-1582854-1-1.html



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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