【VBA】树控件TreeView的学习(二)_treeview

哈喽,手机边亲爱的你还好吗?我是默默给大家分享Access知识的will。

上一篇文章我们简单讲了一下TreeView怎么

加载显示数据,TreeView上显示的数据都是手工添加的,那今天我们要来讲一下怎么把表中数据显示在TteeView上。

我们来回顾一下TreeView的代码,我们看其中一段代码

With tree_Test.Nodes

        .Add , , "K", "根节点" '添加根节点

        .Add "K", tvwChild, "K1", "子节点1" '添加一级节点

        .Add "K", tvwChild, "K2", "子节点2" '添加一级节点

        .Add "K1", tvwChild, "K11", "孙节点11"    '添加二级节点

        .Add "K1", tvwChild, "K12", "孙节点12"

        .Add "K1", tvwChild, "K13", "孙节点13"

        .Add "K2", tvwChild, "K21", "孙节点21"

End With

这里的我们可以看到,如果要把数据挂在树上的话,需求知道某个节点的上一级是什么。第一级的上一级是根目录,第二级的上一级是第一级,第三级的上一级是第二级……以此类推,按照这样的循环,我们需要先来建一张表,具体的我们来按步骤来操作。

PART1、建表

我们先建这样一张表,ProductID是产品编号(树的键值),这个是唯一的,ProductName是产品名称,ProductParentID是上级键值,可以重复。

【VBA】树控件TreeView的学习(二)_access_02

然后,我们可以手工添加一些数据

【VBA】树控件TreeView的学习(二)_access_03

PART2、添加控件

接下去,添加一下树控件,控件的名称改成TreeView0

【VBA】树控件TreeView的学习(二)_treeview_04

PART3、添加代码

最后就是添加一下代码,同样的我们在窗体的加载事件里添加一下代码

 

我们可以看到代码与上一篇讲的多了一步,对表记录的循环,循环的同时将数据显示在树上

Private Sub Form_Load()
Dim strSQL     As String
    Dim rst      As Object 
    Dim treeNode      As Object 
    Dim parentKey    As String

    Me.TreeView0.Nodes.Clear                                      '清空所有节点
    Set treeNode = Me.TreeView0.Nodes.Add(, , "K", "根节点(树控件第二课)")    '创建根节点

    strSQL = "SELECT * FROM tblProduct ORDER BY ProductID"
    Set rst = CurrentDb.OpenRecordset(strSQL)     '打开表记录
    Do Until rst.EOF
        parentKey = "K" & rst!ProductParentID   '上级键值
        Me.TreeView0.Nodes.Add parentKey, tvwChild, "K" & rst!ProductID, rst!ProductName '添加树节点
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
'      treeNode.Expanded = True
    For Each treeNode In Me.TreeView0.Nodes '展开树节点
        treeNode.Expanded = True
    Next

End Sub

PART4、运行测试

最后一步就是运行测试一下,看一下效果。

【VBA】树控件TreeView的学习(二)_access_05

文字内容的分享就到这里,后面会做个视频给大家详细讲解一下。

【VBA】树控件TreeView的学习(二)_treeview_06

END