VB程序学习代码记录20160726
2016-07-26 23:46
363 查看
多级树状视图
Dim cnn As New ADODB.Connection Dim rs1 As New ADODB.Recordset Dim i As Integer, bmjc As Integer Dim blntj As Boolean Dim bmbh As String Private Sub Form_Load() Me.Caption = "部门管理" cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db_manpowerinfo.mdb;persist security info=false" tree_add tlbState True If TreeView1.Nodes.Count > 0 Then TreeView1.Nodes(1).Selected = True End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "ok" tlbState True If Len(Text1(0)) > 10 Then MsgBox "部门编号超长" Exit Sub End If rs1.Open "select * from 部门表", cnn, adOpenKeyset, adLockOptimistic rs1.AddNew For i = 0 To 6 rs1.Fields(i) = Text1(i) Next i rs1.Fields("编码次级") = Len(Text1(0)) / 2 rs1.Update rs1.Close If TreeView1.Nodes.Count > 0 Then If blntj = True Then TreeView1.Nodes.Add TreeView1.SelectedItem.Key, tvwLast, Text1(3), "(" & Text1(1) & ")" & Text1(2), "close" TreeView1.SelectedItem.LastSibling.Selected = True Else TreeView1.Nodes.Add TreeView1.SelectedItem.Key, tvwChild, Text1(3), "(" & Text1(1) & ")" & Text1(2), "close" For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(o).Sorted = True Next i TreeView1.SelectedItem.Child.LastSibling.Selected = True End If Else Set node1 = TreeView1.Nodes.Add(, tvwFirst, Text1(3), "(" & Text1(1) & ")" & Text1(2)) node1.Selected = True End If Case "cancel" tlbState True Case "addnew" tlbState False: blntj = True For i = 0 To Text1.UBound Text1(i).Text = "" Next i If TreeView1.Nodes.Count > 0 Then rs1.Open "select * from 部门表 where 部门全称='" + TreeView1.SelectedItem.LastSibling.Key + "'order by 编码级次", cnn, adOpenKeyset, adLockOptimistic If rs1.RecordCount > 0 Then Text1(1) = Format(Val(rs1.Fields("本级编号")) + 1, "00") Text1(0) = Left(rs1.Fields("部门编号"), Len(rs1.Fields("部门编号")) - 2) & Text1(1) End If rs1.Close Else Text1(0) = "01" Text1(1) = "01" End If Text1(2).SetFocus Case "addchild" If TreeView1.Nodes.Count = 0 Then MsgBox "没有上级部门,无法添加下级" Exit Sub End If tlbState False: blntj = False rs1.Open "select * from 部门表 where 部门编号 like '" + Text1(0) + "'+ '__' or 部门编号=" '+ text1(0) + '"order by 部门编号", cnn, adopenkeyset,adlockoptimistic If rs1.RecordCount > 1 Then rs1.MoveLast Text1(1) = Format(Val(rs1.Fields("本级编号")) + 1, "00") Text1(0) = Left(rs1.Fields("部门编号"), Len(rs1.Fields("部门编号")) - 2) & Text1(1) Else Text1(1) = "01" Text1(0) = rs1.Fields("部门编号") & Text1(1) End If rs1.Close For i = 2 To Text1.UBound Text1(i).Text = "" Next i Text1(2).SetFocus Case "del" If TreeView1.SelectedItem.Children > 0 Then MsgBox "此部门存在下级部门,不允许删除!" Exit Sub End If cnn.Execute ("delete from 部门表 where 部门全称='" + TreeView1.SelectedItem.Key + "'") tree_add Case "expand" For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = True Next i Case "nexpand" For i = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i).Expanded = False Next i Case "exit" End End Select End Sub Sub tree_add() TreeView1.Nodes.Clear Dim mNode As Node rs1.Open "select * from 部门表 order by 部门编号,编码级次", cnn, adOpenKeyset, adLockOptimistic If rs1.RecordCount > 0 Then '如果表中有记录 rs1.MoveFirst '将记录指针移到第一条 '使用Do While语句并根据"编码级次"添加不同级别的数据到TreeView控件中 Do While rs1.EOF = False Select Case rs1.Fields("编码级次") Case 1 Set mNode = TreeView1.Nodes.Add() mNode.Text = "(" & rs1.Fields("本级编号") & ")" & rs1.Fields("部门名称") mNode.Key = rs1.Fields("部门全称") mNode.Image = "close" Case 2 Set mNode1 = TreeView1.Nodes.Add(mNode.Index, tvwChild) mNode1.Text = "(" & rs1.Fields("本级编号") & ")" & rs1.Fields("部门名称") mNode1.Key = rs1.Fields("部门全称") mNode1.Image = "close" Case 3 Set mNode2 = TreeView1.Nodes.Add(mNode1.Index, tvwChild) mNode2.Text = "(" & rs1.Fields("本级编号") & ")" & rs1.Fields("部门名称") mNode2.Key = rs1.Fields("部门全称") mNode2.Image = "close" Case 4 Set mNode3 = TreeView1.Nodes.Add(mNode2.Index, tvwChild) mNode3.Text = "(" & rs1.Fields("本级编号") & ")" & rs1.Fields("部门名称") mNode3.Key = rs1.Fields("部门全称") mNode3.Image = "close" Case 5 Set mNode4 = TreeView1.Nodes.Add(mNode3.Index, tvwChild) mNode4.Text = "(" & rs1.Fields("本级编号") & ")" & rs1.Fields("部门名称") mNode4.Key = rs1.Fields("部门全称") mNode4.Image = "close" End Select rs1.MoveNext Loop End If rs1.Close End Sub Sub tlbState(state As Boolean) With Toolbar1 If state = True Then .Buttons(1).Enabled = False .Buttons(2).Enabled = False For i = 4 To 9 .Buttons(i).Enabled = True Next i For i = 0 To Text1.UBound Text1(i).Locked = True Next i Else .Buttons(1).Enabled = True .Buttons(2).Enabled = True For i = 4 To 9 .Buttons(i).Enabled = False Next i For i = 0 To Text1.UBound Text1(i).Locked = False Next i End If End With End Sub
相关文章推荐
- VBA 常用的VBA短句(带注释)
- VBA CurrentRegion属性示例
- 在Win7 Host的ubuntu虚拟机中自动挂载win7的共享目录
- 使用bat/vbs/ahk对Windows下进行自动化操作
- vbs - 一个简单的栈 -- 只能存储类对象
- vbs 实现文件夹拷贝--采用堆栈不递归
- vbs 一些学习资料
- VB程序学习代码记录20160725
- vbox安装ubuntu 16.04时出现"busybox-initramfs"
- iWebOffice使用VBA控制字体
- Excel中VBA进行插入列、格式化、排序
- 【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用(2)
- 【EVB-335X-II试用体验】 u-boot与kernel的编译以及本地repo的建立
- 【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用
- 【EVB-335X-II试用体验】 上手试用与资源使用
- VB.Net中点击按钮(Button)会重复提交两次表单
- VBA 实现学校上课教员一学期中所有上课时间,在一页中通过背景底色反应出来
- VB程序学习代码记录20160724
- 用vbs 将有序文件转换为有序文件
- VB程序学习代码记录20160723(2)