VB编程中TreeVieW怎么使用?

我在一个程序中要用到如下功能,不知怎么实现:
1、访问一个地址数据库,
2、用TREEVIEW控件显示,功能如此:
省份—(在数据库中取得)
地区—(在数据库中取得)
城市—(在数据库中取得)
……
3、地区对应相应的省份,即子目录与父目录是相对应的,如江西省下有南昌地区,赣州地区行一样,赣州地区下面又可以展开赣州市,南康市,定南县,龙南县等;
4、可以展开,也可以全部收起来。
不知怎样实现,请大侠们帮帮我,
给个实例最好!
问题补充:数据库是这样的:
表一:地址属性:
地址编号(自动编号)
属性(字符)
表二:地名表
地名编号(自动编号)
地名(名称)
地址属性(数字)
所在地(数字)
其中
地址属性与表一的属性相对,当选择上一个属性之后,就进行一次搜索,搜索具有该属性的地址,显示在下一个所在地的控件里面,所在地如果是顶级则是用“0“表示,如不是则用所获和是的所在地表示
怎么实现
要是你有这个程序,能把代码发给我吗?
我的E-MAIL:ncpeople@163.com

我把我做的一个有关treeview和listview的事例给你,你参考一下
----------------------------以下为模块代码
  Option Explicit
  
  Public Cnn As ADODB.Connection
  Public ServerName As String
  '服务器名
  Public DBname As String
  '数据库名
  Public UserName As String
  '用户名
  Public PassWord As String
  '密码
  Public rsTree As ADODB.Recordset
  Public rsList As ADODB.Recordset
  
  
  Public Function IniDB() As Boolean
   '初始化连接函数
   On Error GoTo MyErr
   IniDB = False
   Set Cnn = New ADODB.Connection
   With Cnn
   .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserName & ";PWD=" & PassWord & ";Initial Catalog=" & DBname & ";Data Source=" & ServerName
   '连接字符串
   .CommandTimeout = 10
   '连接等待时间
   .CursorLocation = adUseClient
   '游标类型
   .Open
   End With
   IniDB = True
   Exit Function
  MyErr:
   MyErr
  End Function
  
  
  Public Sub MyErr()
   MsgBox "错误号:" & Err.Number & vbCrLf & "错误源:" & Err.Source & vbCrLf & "错误描述:" & Err.Description, vbCritical, "对不起,出现错误!"
   Err.Clear
  End Sub
  =================================以下为窗体代码==========================================
  'treeview控件名为tvwtree,listview控件名为lvwtree
  Private Sub Form_Load()
   ServerName = "."
   DBname = "northwind"
   UserName = "sa"
   If IniDB() = False Then
   MsgBox "数据连接失败,请启动SQL SERVER服务"
   Exit Sub
   End If
   Dim NodeX As Node
   Set rsTree = New ADODB.Recordset
   rsTree.Open "select * from dept order by dlevel,did", Cnn, adOpenStatic, adLockOptimistic
   Do Until rsTree.EOF
   If rsTree.Fields("dlevel") = 0 Then
   TvwTree.Nodes.Add , , "k" & rsTree.Fields("did").Value, rsTree.Fields("dname").Value
   Else
   TvwTree.Nodes.Add "k" & rsTree.Fields("dtid").Value, tvwChild, "k" & rsTree.Fields("did").Value, rsTree.Fields("dname").Value
   End If
   rsTree.MoveNext
   Loop
  End Sub
  
  
  
  
  
  
  
  Private Sub TvwTree_NodeClick(ByVal Node As MSComctlLib.Node)
   LvwTree.ListItems.Clear
   Set rsList = New ADODB.Recordset
   rsList.Open "select * from dept where dname='" & TvwTree.SelectedItem & "'", Cnn, adOpenStatic, adLockOptimistic
   If rsList.Fields("dend") = 0 Then
   rsList.Close
   rsList.Open "select * from dept where dtid=(select did from dept where dname='" & TvwTree.SelectedItem & "')", Cnn, adOpenStatic, adLockOptimistic
   Do Until rsList.EOF
   LvwTree.View = lvwList
   LvwTree.ListItems.Add , , rsList.Fields("dname")
   rsList.MoveNext
   Loop
   Else
   Dim Temp As Integer
   Temp = rsList.Fields("did").Value
   rsList.Close
   rsList.Open "select * from emp where edid=" & Temp, Cnn, adOpenStatic, adLockOptimistic
   Do Until rsList.EOF
   LvwTree.View = lvwList
   LvwTree.ListItems.Add , , rsList.Fields("ename")
   rsList.MoveNext
   Loop
   End If
  End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-27
★完全把程序写出来太多了,给你说下主要的吧:
●你的问题归纳为两点:
○1.如何把数据表关联起来
○2.如何把数据添加到TreeView里
●然后分别解释一下:
○1.如何把数据表关联起来
你把省份,地区,城市分别放在三个表中
字段结构如下:
省份表:
------------------
|
id
|
name
|
------------------
地区表:
-------------------------------
|
id
|
parent
|
name
|
-------------------------------
城市表:
-------------------------------
|
id
|
parent
|
name
|
-------------------------------
地区表中的parent是该地区对应的省份的id,而城市表中的parent是该城市对应的地区id。
这样在查询中,比如id为1的省份是山西省,想得到山西省地区就可以这样写:
select
*
from
省份表,地区表
where
省份表.id=地区表.parent
AND
省份表.name='山西省'
结果就是:晋中地区,晋北地区,晋南地区
同理,想得到晋中地区的城市,就可以这样写:
select
*
from
地区表,城市表
where
地区表.id=城市表.parent
AND
地区表.name='晋中地区'
○2.如何把数据添加到TreeView里
把数据添加到TreeView里,最主要的是要知道如何添加记录,还有如何确立记录与记录之间的父子关系,如下:
'先申明新对象
Dim
myNod
As
Node
'然后给TreeView里添加数据
Set
myNod=TreeView控件名.Nodes.Add(a,b,key,Text,Image)
'参数解释(假如我们把TreeView里的一条数据称之为一个节点):
a:
参照物的key。也就是说要往哪个节点的下增加数据,a就是哪个节电的key值。如果是往根节点下加数据,可以省略不写
b:
和参照物的关系。如果和参照的节点是平级的(兄弟关系)就写"tvwNext",如果是参照物的子节点(父子关系)就写"tvwChild"
key:
节点的关键字,或者说是节电的名字,不可重复。
text:
节点上显示的文字
image:节点的图标,可以省略。
了解了这些后,你自己完全可以写出该程序。

VB编程中TreeVieW怎么使用?
为了使用 TreeView 和 ListView 控件在 Visual Basic 编程中实现数据展示,我们可采用以下步骤。在初始化连接函数 `IniDB()` 中,通过 `ADODB.Connection` 对象建立与 SQL 服务器的连接,使用连接字符串设置数据库信息。确保正确初始化连接以防止连接失败。在 `Form_Load()` 事件处理程序中,设置服务器...

vb 如何在TreeView控件中加入对结点操作
1. 首先,在设计界面中添加TreeView控件和ContextMenu控件。ContextMenu控件用于存放右击事件时显示的操作项。2. 接下来,双击TreeView控件以生成右击事件处理程序。在事件处理函数中,使用Show方法显示ContextMenu控件。这样,当用户右击TreeView中的任意节点时,指定的ContextMenu将自动弹出。3. 在ContextMenu...

vb.net中TreeView控件的使用
给TreeView添加结点用到的是 Nodes Add 方法 首先选定要添加子结点的结点才能应用这个方法 TreeView中的结点的组织关系是父结点管理子结点的关系 也就是说 子结点组成的集合就是父结点的 Nodes 属性 子结点的 Index 属性 是根据其在子结点集合中的位置而决定的 而不是整棵树中结点的位置 根据这个特点...

vba中treeview控件怎么使用? 想用Excel+Access来做,实现点击树控件节点...
导入后与一般控件一样使用。鼠标右键点击工具箱,选择“添加控件”-“Microsoft treeview control”,工具箱内就会显示"Treeview"控件了,其它的基本与纯VB环境差不多,就不说了。

VB中那个树状结构控件怎么用
树状结构使用treeview实现,控件添加方法:右击“工具箱”-“部件”-microsoft windows common controls 6.0-确定,应用 下面是简单的添加删除方法,Option Explicit ‘添加项目 Private Sub Command1_Click()Dim nodx As Node Set nodx = TreeView1.Nodes.Add(, , "zf", "紫风无痕关系(双击收起...

vb.net中treeview控件用法
在运行时设置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的外观。这将折叠除选定的 TreeNode 之外的所有树节点。下面的代码示例阐释了如何使用 TreeView 控件。Private Sub InitializeTreeView()treeView1.Begin...

vb net treeview控件如何设置某节点被选择
TreeView的SelectedNode属性获取或设置当前选择的节点。TreeView1.SelectedNode = TreeView1.Nodes(1) '选择第二个节点

VB中的treeview和listview控件如何使用?
创建能够显示至少两层或更多层的数据库树。设置 Node 对象属性 “树”由一些层叠的“节点”分支构成,每个节点通常包括图象(用 Image 属性设置)和标签(由 Text 属性设置)。节点的图象由与 TreeView 控件相关联的 ImageList 控件提供。关于与其它控件共同使用 ImageList 控件的更多信息,请参阅“使用 ...

vb treeview的用法解释(针对实例)。。。
INDEX就是INDEX 是TREEVIEW1中的唯一标记 key在TREE里也是唯一的 不得重复 你要是有2个部门是用相同的名称 那就可能会出错 TREEVIEW1.NODES(“这里输入KEY ”) 这一也能访问到这个节点 说实话 我没见过这个实例 我惯用的是自己写的一段代码 数据库就2个字段 一个DM 一个名称 树形的节点长度...

vb 怎么实现 treeview部分节点的checkbox显示,部分隐藏
首先:控件包没装好,使用上边介绍的控件包装一下试试 其次:TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.0 4)关于闪烁 将AutoPostBack属性设置为真,SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话,将AutoPostBack属性设置为FALSE.5)如何实现用键盘...

相似回答