access中怎样实现树状结构

请详细说明!... 请详细说明! 展开
 我来答
xhs222
2015-08-19 · 为您提供优质办公生活服务。
xhs222
采纳数:132 获赞数:1338

向TA提问 私信TA
展开全部

详见:http://www.accessoft.com/article-show.asp?id=3308

  1. TreeView 控件


TreeView 控件显示 Node 对象的分层列表,每个 Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。


语法

Treeview


说明

创建了 TreeView 控件之后,可以通过设置属性与调用方法对各 Node 对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。Collapse、Expand 和 NodeClick 三个事件也提供编程功能。


Node 对象使用 Root、Parent、Child、FirstSibling、Next、Previous 和 LastSibling 属性。在代码中可通过检索对 Node 对象的引用,从而在树上定位。也可以使用键盘定位。UP ARROW 键和 DOWN ARROW 键向下循环穿过所有展开的 Node 对象。从左到右、从上到下地选择 Node 对象。若在树的底部,选择便跳回树的顶部,必要时滚动窗口。RIGHT ARROW 键和 LEFT ARROW 键也穿过所有展开的 Node 对象,但是如果选择了未展开的 Node之后再按 RIGHT ARROW 键,该 Node 便展开;第二次按该键,选择将移向下一个 Node。相反,若扩展的 Node 有焦点,这时再按 LEFT ARROW 键,该 Node 便折回。如果按下 ANSI 字符集 中的键,焦点将跳转至以那个字母开头的最近的 Node。后续的按该键的动作将使选择向下循环,穿过以那个字母开头的所有展开节点。


控件的外观有八种可用的替换样式,它们是文本、位图、直线和 +/- 号的组合,Node 对象可以任一种组合出现。


TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示于 Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList。这意味着,当 TreeView 控件的 Style 属性被设置成显示图像的样式时,TreeView 控件中每一项的旁边都有一个同样大小的图像。


发行注意 TreeView 控件是 MSCOMCTL.OCX 文件中的一组 ActiveX 控件的一部分。为了在应用程序中使用 TreeView 控件,必须将 MSCOMCTL.OCX 文件

2. Sorted 属性(TreeView 控件)

返回或设置一值,此值确定 Node 对象的子节点是否按字母顺序排列。

返回或设置一值,此值确定 TreeView 控件的根层节点是否按字母顺序排列。


语法

object.Sorted [ = boolean]

Sorted 属性语法包含下面部分:


部分 描述

object 对象表达式,其值是“应用于”列表中的一个对象。

boolean 布尔表达式,表示 Node 对象是否已被排序如“设置值”中描述。

 

设置值

boolean 的设置值是:

设置值 描述

True Node 对象根据它们的 Text 属性按字母顺序排列。其 Text 属性由数字开始的 Node 对象也作为字符串排序,第一个数字确定在排序中的初始位置,后面的数字确定以后的排序。

False Node 对象不排序。


说明

Sorted 属性有两种用法,第一,在 TreeView 控件的根(顶)层排列 Node 对象,第二,对任何单个 Node 对象的立即子节点排序。例如,下面的代码是对 TreeView 控件的根节点排序:


Private Sub Command1_Click()

3. EnsureVisible 方法

这个方法确保指定的 ListItem 或 Node 对象是可视的。如果需要,这个方法可展开 Node 对象并滚动 TreeView 控件。该方法仅可滚动 ListView 控件。


语法

object.EnsureVisible

object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。


返回值

值 描述

True 如果 ListView 或 TreeView 控件必须滚动与/或扩展以显露该对象,该方法返回 True。

False 如果不需滚动与/或展开,该方法返回 False。


说明

一个特定的 Node 或 ListItem 对象可能深藏于 TreeView 或 ListView 控件中,当要使其为可视时,使用 EnsureVisible 方法。

如果 Scroll 属性设置为 False,则该方法将不会在 TreeView 控件上起作用。
 
4. Node 对象和 Nodes 集合

Node 对象是 TreeView 控件中的一项,它包含图像和文本。

Nodes 集合包含一个或多个 Node 对象。


语法

treeview.Nodes

treeview.Nodes.Item(index)

以上语法行,按照标准集合语法分别引用集合与集合中的单独元素。

treeview 对象表达式,其值是 TreeView 控件。

index 整数或字符串,它唯一地标识 Nodes 集合的一个成员。整数是 Index 属性的值,字符串是 Key 属性的值。


说明

节点可包含文本和图片。然而,要使用图片,必须用 ImageList 属性关联一个 ImageList 控件。

图片可以根据节点的状态而改变;例如,如果将 SelectedImage 属性设置为来自关联的 ImageList 的图像,则被选中的节点可拥有与未选中的节点不同的图片。

5. Add 方法(Nodes 集合)

在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。


语法


object.Add(relative, relationship, key, text, image, selectedimage)


Add 方法的语法包含下面部分:


描述

object 必需的。对象表达式,其值是“应用于”列表中的一个对象

relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。

relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。

key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。

text 必需的。在 Node 中出现的字符串。

image 可选的。在关联的 ImageList 控件中的图像的索引。

selectedimage 可选的。在关联的 ImageList 控件中的图像的索引,在 Node 被选中时显示。


设置值

relationship 的设置值是:

6. Root 属性(Node 对象)

返回对所选 Node 的根 Node 对象的引用。
语法

object.Root

object 所在处代表是对象表达式,其值是“应用于”列表中的对象
说明

Child、FirstSibling、LastSibling、Previous、Parent、Next 和 Root 各属性全将返回对另一个 Node 对象的引用。因此,可以同时引用并执行对 Node 的操作,如下所示:
With TreeView1.Nodes(x).Root

.Text = "New text"

.Key = "New key"

.SelectedImage = 3

End With
也可以将对象变量设置为被引用的 Node,如下所示:
Dim NodRoot As Node

'得到对节点 x 的根的引用。

Set NodRoot = TreeView1.Nodes(x).Root

'用此引用执行对根节点的操作。

With nodRoot

.Text = "New text" '改变文本。

.Key = "New key" '改变键。

.SelectedImage = 3 '改变 SelectedIma
 
7. Parent 属性(Node 对象)

这个属性返回或设置 Node 对象的父对象。仅在运行时可用。


语法

object.Parent[ = node]

Parent 属性的语法包含下面部分:
部分 描述

object 对象表达式,其值是“应用于”列表中的一个对象。

node 变成该对象的父对象的 Node 对象。 
说明

在运行时,设置这个属性为一个对象的操作不能搞成一个循环,否则便发生错误。例如,不能将任何 Node 设置成为其后代的子 Node。
Child、FirstSibling、LastSibling、Previous、Parent、Next 和 Root 属性都返回对另一个 Node 对象的引用。所以可以同时引用并执行对一个 Node 的操作,如下所示:
With TreeView1.Nodes(x).Parent

.Text = "New text"

.Key = "New key"

.SelectedImage = 3

End With
也可以将对象变量设置为引用的 Node,如下所示:
Dim NodParent As Node
Private Sub TreeView1_DragDrop(Source As Control, x As Single, y As Single)

'如果用户没移动鼠标,或在无效区释放它。

If TreeView1.DropHighlight Is Nothing Then

indrag = False

Exit Sub

Else

'设置被拖动的节点的 parent 属性为目标节点。

On Error GoTo checkerror '阻止循环错误。

Set nodX.Parent = TreeView1.DropHighlight

Cls

Print TreeView1.DropHighlight.Text & _

" is parent of " & nodX.Text

'释放 DropHighlight 引用。

Set TreeView1.DropHighlight = Nothing

indrag = False

Exit Sub '如未发生错误则退出。

End If
checkerror:

'定义表示 Visual Basic 错误代码的常数。

Const CircularError = 35614

If Err.Number = CircularError Then

Dim msg As String

msg = "A node can't be made a child of its own children."

'显示带有一个感叹号图标

'和“确定”与“取消”按钮的消息框。

If MsgBox(msg, vbExclamation & vbOKCancel) = vbOK Then

'释放
9. Children 属性

这个属性返回包含在 Node 对象中的各子 Node 对象的个数。


语法

object.Children

object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。


说明

在执行一个影响子节点的操作之前,可用 Children 属性检查 Node 对象是否有子节点。例如,以下代码在检索第一个 Node 的 Text 属性之前,使用 Child 属性检查子节点的存在。


Private Sub TreeView1_NodeClick(ByVal Node As Node)

If Node.Children > 0 Then

MsgBox Node.Child.Text

End If

End Sub


Children 属性示例

这个例子在 TreeView 控件中放置几个 Node 对象。这组代码检查 Node 是否有子节点。如果有,则显示子节点的文本。为试用此例,在窗体上安放一个 TreeView 控件,并在窗体的声明部分中粘贴下面的代码。运行此例,单击 Node 对象以选择它,然后单击该窗体来察看 Node 对象的子节点的文本。


Option Explicit

Private Sub Form_Click()

Dim strC As String

Dim N As Integer

If TreeView1.SelectedItem.Children > 0 Then '有子节点。

10. FirstSibling 属性(Node 对象)

这个属性返回对 TreeView 控件中的 Node 对象的第一个相邻对象的引用。


语法

object.FirstSibling

object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象


说明

第一个相邻节点是出现在一个节点层中第一个位置上的 Node。实际上到底是哪一个 Node 出现在第一个位置取决于在那一层上的 Node 对象是否被排序,这由 Sorted 属性确定。


Child、FirstSibling、LastSibling、Previous、Parent、Next 和 Root 属性都返回对另一个 Node 对象的引用。所以可以同时引用并执行对一个 Node 的操作,如下所示:


With TreeView1.Nodes(x).FirstSibling

.Text = "New text"

.Key = "New key"

.SelectedImage = 3

End With


也可以将对象变量设置为引用的 Node,如下所示:


Dim NodFirstSib As Node

'获取 Node x 的第一个相邻节点的引用。

Set NodFirstSib = TreeView1.Nodes(x).FirstSibling

'使用这个引用执行对第一个相邻 Node 的操


常数 值 描述 

百度网友dc91b32
2006-12-21 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
树型机构要求数据库必须具有至少以下三个字段:
表(id,名称,父节点id)

至少具有以上字段才能造一颗树,

程序加载树很简单,一个递归,或一个循环就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dj1893
2006-12-21 · TA获得超过1099个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:175万
展开全部
你是想制作一个表,然后用编程来实现吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式