×

vba treeview控件实例

vba treeview控件实例(VB编程中TreeVieW怎么使用)

admin admin 发表于2023-10-11 08:59:45 浏览29 评论0

抢沙发发表评论

本文目录

VB编程中TreeVieW怎么使用

我把我做的一个有关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

如何在VBA用户窗体中添加TreeView控件

在工作表界面按下组合快捷键Alt+F11进入VBA环境,在“工程资源管理器”鼠标右键→“插入”→“用户窗体”,如下图所示在菜单”工具“下单击“附件控件”,在弹出的附件控件对话框中找到“Microsoft TreeView Control 6.0“,单击”确定“即可在控件工具箱中添加该控件。

如何将VBA中的TreeView控件中的节点写入工作表

题目和内容不一致啊!TreeView控件中用鼠标双击写入,在TreeView1_DblClick()写入代码,或用键盘TreeView1_KeyPress(KeyAscii As Integer)写入语句range(“A1“)=TreeView1.Nodes(i) ‘ i为变量

谁有 VB6.0设计真正实用的TreeView控件 实例

Dim XYID(1 To 1000) As Long, QQID As LongPrivate Sub Form_Load()TreeView1.Enabled = TrueDim Nodxx As NodeSet Nodxx = TreeView1.Nodes.Add(, , , 1) Nodxx.Text = “根目录“ Nodxx.Image = “TP1“ TreeView1.LabelEdit = tvwManualSet Nodxx = TreeView1.Nodes.Add(1, tvwChild, “A1“, “二级目录1“)Nodxx.Image = “TP2“Set Nodxx = TreeView1.Nodes.Add(1, tvwChild, “A2“, “二级目录2“)Nodxx.Image = “TP2“Set Nodxx = TreeView1.Nodes.Add(1, tvwChild, “A3“, “二级目录3“)Nodxx.Image = “TP2“................................... Call SJK(db) strSQL = “select * from 数据表 Order By ID“ RS.Open strSQL, db, 1, 1 Do While Not RS.EOF XYID(Nodxx.Index) = RS!Id ’注意变量XYID()是全局变量,类型是Long If RS!分类 = “二级目录1“ Then Set Nodxx = TreeView1.Nodes.Add(“A1“, tvwChild) Nodxx.Text = RS!姓名 Nodxx.Image = “TP3“ Nodxx.Tag = “Site“ ElseIf RS!分类 = “二级目录2“ Then Set Nodxx = TreeView1.Nodes.Add(“A2“, tvwChild) Nodxx.Text = RS!姓名 Nodxx.Image = “TP3“ Nodxx.Tag = “Site“ ElseIf RS!分类 = “二级目录3“ Then Set Nodxx = TreeView1.Nodes.Add(“A3“, tvwChild) Nodxx.Text = RS!姓名 Nodxx.Image = “TP3“ Nodxx.Tag = “Site“ ’....................................... End If RS.MoveNext Loop RS.Close Set RS = Nothing db.Close Set db = Nothing Nodxx.EnsureVisibleEnd SubPrivate Sub TreeView1_NodeClick(ByVal Node1 As Node)If (Node1.Index - 1) 》 0 And (Node1.Index - 1) 《 100 Then If Not XYID(Node1.Index - 1) = 0 Then QQID = Val(XYID(Node1.Index - 1)) ’注意变量QQID是全局变量,类型是Long Call SJK(db) strSQL = “select * from 数据表 WHERE ID=“ & QQID & ““ RS.Open strSQL, db, 3, 3 Label2.Caption = RS!姓名 ’在Label2控件显示内容 ’依照上面的语句,将内容显示在相关控件中,例如Text或Label’..............................................RS.CloseSet RS = Nothingdb.CloseSet db = NothingEnd IfEnd IfEnd Sub说明:“TP1“、“TP2“、“TP3“是由ImageList控件提供的图片的关键字 窗体就是一个TreeView控件和一个ImageList,另外添加显示控件即可。

关于VB中TreeView控件使用样例

按照里面的SUB相应地添加控件.如果满意我们回答,请采纳.谢谢Option ExplicitDim I As IntegerDim J As IntegerDim nodx As NodeDim CunZai As Boolean ’定义变量Private Sub Command1_Click() If txt(0).Text 《》 ““ And txt(1).Text 《》 ““ Then ’不允许建立零字节的父节点和子节点 CunZai = False J = TreeView1.Nodes.Count For I = 1 To TreeView1.Nodes.Count ’检查新输入的父节点名称是否存在 If TreeView1.SelectedItem.Children 》 0 Then If txt(0).Text = TreeView1.Nodes(I).Text Then CunZai = True End If Next I If CunZai = True Then ’若存在, 则在父节点下建立子节点 Set nodx = TreeView1.Nodes.Add(txt(0).Text, tvwChild, “child“ & J, _ txt(1).Text, 3) Else ’,若不存在,则建立父节点和子节点 Set nodx = TreeView1.Nodes.Add(, , txt(0).Text, txt(0).Text, 1) Set nodx = TreeView1.Nodes.Add(txt(0).Text, tvwChild, “child“ & J, _ txt(1).Text, 3) End If TreeView1.Refresh ElseIf txt(0).Text = ““ Then MsgBox “请输入父节点名称!“, vbInformation, “警告!“ ’系统提示 ElseIf txt(1).Text = ““ Then MsgBox “请输入子节点名称!“, vbInformation, “警告!“ End IfEnd SubPrivate Sub Command2_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = True ’展开所有节点 Next IEnd SubPrivate Sub Command3_Click() For I = 1 To TreeView1.Nodes.Count TreeView1.Nodes(I).Expanded = False ’收起所有节点 Next IEnd SubPrivate Sub Command4_Click() TreeView1.Sorted = True ’排列顺序End SubPrivate Sub Command5_Click() If TreeView1.SelectedItem.Index 《》 1 Then TreeView1.Nodes.Remove TreeView1.SelectedItem.Index ’删除选定的节点 End IfEnd SubPrivate Sub Command6_Click() End ’退出程序End SubPrivate Sub Form_Load() TreeView1.LineStyle = tvwTreeLines ’在兄弟节点和父节点之间显示线 TreeView1.ImageList = ImageList1 ’链接图像列 TreeView1.Style = tvwTreelinesPlusMinusPictureText ’树状外观包含全部元素 Set nodx = TreeView1.Nodes.Add(, , “aaaaa“, “aaaaa“, 1) ’建立名称为“aaaaa“的父节点,选择索引为1的图像 Set nodx = TreeView1.Nodes.Add(“aaaaa“, tvwChild, “child01“, “收件箱“, 3) ’在“aaaaa“父节点下建立“收件箱“子节点,选择索引为3的图像 Set nodx = TreeView1.Nodes.Add(“aaaaa“, tvwChild, “child02“, “发件箱“, 3) ’在“aaaaa“父节点下建立“发件箱“子节点,选择索引为3的图像 CunZai = FalseEnd SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node) Node.ExpandedImage = 2 ’节点被展开时,选择索引为2的图像End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If TreeView1.SelectedItem.Children = 0 Then ’检查是否有子节点,0为无 For I = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(I).Selected Then MsgBox “您选择的是:““ & TreeView1.Nodes(I).FullPath & “”子节点!“ ’系统提示 End If Next I End IfEnd Sub