“目录树所有节点标题集合”与“花名册表中部门名称列值集合”比较,将“花名册中部门名称列值集合”中不是属于“目录树所有节点标题集合”全部显示在table2中。这个代码怎么搞啊
代码出错:
-------
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each td As WinForm.TreeNode In tr.AllNodes
Names.Add(td.Text)
Tables("组织架构设置_Table2").Filter = "[离职日期] IS NULL AND ( [部门名称] IS NULL Or [部门名称] NOT IN Names )"
------------
[部门名称] NOT IN Names 这个报错,Names集合里面是目录树的所有标题,IN函数格式要:[部门名称] NOT IN('A','B' )"
用Names集合不能替代。我的目录树节点标题集合数据太多了呀!不能用这个格式。那该怎么写好呢??请高手指导。先谢谢了!
问题由来:
1、外部数据库ACCESS,user数据库,里面有“花名册”表。{花名册}表,包含[员工姓名],[部门名称],[出生日期] [离职日期]等多列。
2、窗口“组织架构设置”中建立了“目录树TreeView1”,他的每个节点都是手工增加。命名方式是“部门名称”。再增加了table1,和table2两个控件。还有button1;
3、table1 的显示:通过在“目录树TreeView1”的双击事件中,添加Tables("组织架构设置_Table1").Filter ="[部门名称] = '" & e.Node.text & "' And [离职日期] Is Null",实现了:通过双击目录树节点,如“技术部”,那么table1 中,就会从“花名册”中获得“部门名称”列值为“技术部”的行的信息。
4、问题点:有的时候目录树中的节点名称由以前“技术部”修改成了“技术工程部”,但是花名册里,那个员工的部门还是“技术部”,所以目录树中,点击“技术工程部”节点,在table1 中将不能显示。
5、为了解决这个问题:增加了table2和button1,通过点击button1,将“花名册”中“部门名称”列中值,与目录树的所有节点标题作比较,如果“部门名称”列中一些值,不在目录树节点标题中,如前面举例的“技术部”,还有“空的”等,都筛选出来,显示在table2中。好将花名册表中的“技术部”改成“技术工程部”。因为可能很多,所以要做个筛选。
6、为此,编写了上面代码,就是:“目录树所有节点标题集合”与“花名册表中部门名称列值集合”比较,将“花名册中部门名称列值集合”中不是属于“目录树所有节点标题集合”全部显示在table2中。这个代码怎么搞啊
[此贴子已经被作者于2012-8-7 8:39:19编辑过]