以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两表数据对比找出差异  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103276)

--  作者:蓝蚂蚁
--  发布时间:2017/7/4 15:50:00
--  两表数据对比找出差异
两表的结构:A表【领料部门】【出库单张数】【张数差异】【金额】【金额差异】【科室差异】,B表【领料部门】【出库单张数】【金额】
要实现的功能:两表对比
一、先对比领料部门,如果B表领料部门在A表没有,则A表增加一行把B表的【领料部门】【出库单张数】【金额】拷贝过来,并在A表的【科室差异】填上‘A表无该部门“。反过来,A表领料部门在B表没有,则直接在A表【科室差异】填上‘B表无该部门“。
二、(完成第一步后)两表领料部门都有的话,对比两表(同领料部门)的【出库单张数】和【金额】,在A表【张数差异】和(或)【金额差异】填上差(A表的数-B表的数)
不知道这样叙述,老师们能懂我的意思没有,汗...........!

--  作者:有点甜
--  发布时间:2017/7/4 16:06:00
--  

For Each drb As DataRow In DataTables("表b").datarows
    Dim fdr As DataRow = DataTables("表a").Find("领料部门 = \'" & drb("领料部门") & "\'")
    If fdr Is Nothing Then
        fdr = DataTables("表A").addnew
        fdr("领料部门") = drb("领料部门")
        fdr("金额") = drb("金额")
        fdr("张数") = drb("张数")
    End If
Next
For Each dra As DataRow In DataTables("表A").datarows
    Dim fdr As DataRow = DataTables("表B").Find("领料部门 = \'" & dra("领料部门") & "\'")
    If fdr IsNot Nothing Then
        dra("张数差异") = dra("张数") - fdr("张数")
        dra("金额差异") = dra("金额") - fdr("金额")
    Else
        dra("科室差异") = "B表无该部门"
    End If
Next