以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求一对比小程序 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20651) |
||||
-- 作者:yjk1023 -- 发布时间:2012/6/14 22:13:00 -- 求一对比小程序 有字段结构都一样的2个表 表A和表B,要求求出表a有表b没有的人员、2个表都有的人员和表b有表a没有的人员 [此贴子已经被作者于2012-6-14 22:13:48编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2012/6/14 22:51:00 -- 发示例文件,难得费口舌! |
||||
-- 作者:ksyh518 -- 发布时间:2012/6/14 23:56:00 -- 回复:(yjk1023)求一对比小程序
Dim alst As List(of String) = DataTables("表A").getuniquevalues("","人员") ‘获取表A人员集合 Dim blst As List(of String) = DataTables("表B").getuniquevalues("","人员") ‘获取表B人员集合
Dim aybmy As new List(of String) ’定义A有B没有人员的集合 Dim ayby As new List(of String) ’定义A有B也有人员的集合 Dim anm,bnm As String
For Each anm In alst ‘遍历表A人员集合,获得A有B没有和 A有B也有的人员集合 If blst.contains(anm) = False Then aybmy.add(anm) Else ayby.add(anm) End If Next
Dim byamy As new List(of String) For Each bnm In blst ‘遍历表B人员集合,获得B有A没有的人员集合 If alst.contains(bnm) = False Then byamy.add(bnm) End If Next
Dim v,v1,v2,v3 As Integer V1=aybmy.count V2=ayby.count V3=byamy.count V = Math.max(Math.max(v1,v2),v3) ’在3个集合中,找到最大的集合数 messagebox.Show(v) Dim dtb As new datatablebuilder("人员比较表") \'生成一个查询表并填充人员 Dim dt As DataTable Dtb.adddef("A有B没有",Gettype(String),16) Dtb.adddef("A有B也有",Gettype(String),16) Dtb.adddef("B有A没有",Gettype(String),16) Dt = Dtb.build() . . . [此贴子已经被作者于2012-6-15 8:32:32编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/6/15 8:03:00 -- 如果不想写代码,可以看看: http://www.foxtable.com/help/topics/1479.htm
|
||||
-- 作者:yjk1023 -- 发布时间:2012/6/15 9:41:00 -- 非常感谢!实验中 |
||||
-- 作者:yjk1023 -- 发布时间:2012/6/15 10:25:00 -- 以下是引用程兴刚在2012-6-14 22:51:00的发言:
发示例文件,难得费口舌! |
||||
-- 作者:yjk1023 -- 发布时间:2012/6/15 10:25:00 -- 以下是引用程兴刚在2012-6-14 22:51:00的发言:
发示例文件,难得费口舌!
|
||||
-- 作者:ksyh518 -- 发布时间:2012/6/15 14:17:00 -- 人员对比表-小例子 拜托楼主一件事:以后上传,请以商业版做示例哈!!!!!!!
已测试,人员对比表的小例子 此主题相关图片如下:人员截图.png
[此贴子已经被作者于2012-6-15 15:02:31编辑过]
|
||||
-- 作者:don -- 发布时间:2012/6/15 15:40:00 -- SQL法: Dim dt1,dt2,dt3 As DataTable Dim sql1,sql2,sql3 As String dt1 = DataTables("窗口2_Table1") sql1 = "SELECT 人员 as AB都有 ,\'\' as A有B无,\'\' as A无B有 FROM {表A} WHERE 人员 IN (SELECT 人员 FROM {表B})" sql2 = "SELECT 人员 as A有B无 FROM {表A} WHERE 人员 Not IN (SELECT 人员 FROM {表B})" sql3 = "SELECT 人员 as A无B有 FROM {表B} WHERE 人员 Not IN (SELECT 人员 FROM {表A})" Dim cmd2,cmd3 As New SQLCommand cmd2.CommandText = sql2 dt2 = cmd2.ExecuteReader() cmd3.CommandText = sql3 dt3 = cmd3.ExecuteReader() dt1.Fill(sql1,"",True) Dim f As New Filler f.SourceTable = dt2 f.DataTable = dt1 f.Append = False f.Fill() \' f = New Filler f.SourceTable = dt3 f.DataTable = dt1 f.Append = False f.Fill() \'
|
||||
-- 作者:小猪鑫鑫 -- 发布时间:2012/6/16 8:55:00 -- 学习,收藏 |