以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]将三个表格某列进行合并筛选?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123151)

--  作者:bashanren
--  发布时间:2018/8/8 22:41:00
--  [求助]将三个表格某列进行合并筛选?
各位老师辛苦了!!
  我的问题是:在“河长统计表”的“乡级河长”列将“规模以下河流”、“规模以上河流”、“水库”这三个表的“乡级河长”和“乡级库长”按“乡镇”合并计数统计。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:达川区河库塘长统计表.table


--  作者:有点甜
--  发布时间:2018/8/8 22:55:00
--  

这个意思?

 

If e.DataCol.name = "乡镇" Then
    Dim count1 = DataTables("A表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    Dim count2 = DataTables("B表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    Dim count3 = DataTables("C表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    e.DataRow("XJHZSL") = count1+count2+count3
End If


--  作者:bashanren
--  发布时间:2018/8/9 0:01:00
--  
谢谢你,老师!!!
    但结果还不是这样子的,你这个公式是将三个表格分别计数后,将计数结果相加,而三个表中人名都有相同的,也就是说三个表中相同的人名只计数1次。该如何实现,还请大师帮忙,谢谢!!!

--  作者:bashanren
--  发布时间:2018/8/9 8:59:00
--  
If e.DataCol.name = "乡镇" Then
    Dim count1 = DataTables("A表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    Dim count2 = DataTables("B表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    Dim count3 = DataTables("C表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'").count
    e.DataRow("XJHZSL") = count1+count2+count3
End If
这个语句只是将三个表计数后再相加,同样会有重复人员,不是我最终要的结果,因为三个表相加后又有重复人员,我需要将三个表的人员合并计数,重复人员只计一次。请问大师们该如何实现呢?

--  作者:有点甜
--  发布时间:2018/8/9 9:32:00
--  

参考代码

 

Dim ls1 As List(Of String) = DataTables("A表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'")
Dim ls2 As List(Of String) = DataTables("A表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'")
Dim ls3 As List(Of String) = DataTables("A表").getvalues("XJHZXM", "XZMC=\'" & e.DataRow("乡镇") & "\'")
For Each s As String In ls2
    If ls1.Contains(s) = False Then
        ls1.add(s)
    End If
Next
For Each s As String In ls3
    If ls1.Contains(s) = False Then
        ls1.add(s)
    End If
Next
msgbox(ls1.count)


--  作者:bashanren
--  发布时间:2018/8/9 11:32:00
--  
愿望实现,谢谢大师!!!!