Foxtable(狐表)用户栏目专家坐堂 → [求助]怎么把两个表的数据合到一张表上


  共有3033人关注过本帖树形打印复制链接

主题:[求助]怎么把两个表的数据合到一张表上

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/10 14:07:00 [显示全部帖子]

 呃,需要查找,比较再填充。做个例子发上来


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/10 14:22:00 [显示全部帖子]

 代码大致如下面这样,你改一下表名来用

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
For Each dr As DataRow In dt2.DataRows
    Dim fdr As DataRow = dt1.Find("单位 = '" & dr("单位") & "' and 组名称 = '" & dr("组名称") & "'")
    If fdr IsNot Nothing Then
        For Each dc As DataCol In dt2.DataCols
            If dr.IsNull(dc.Name) AndAlso fdr.IsNull(dc.Name) = False Then
                dr(dc.Name) = fdr(dc.name)
            End If
        Next
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/10 14:33:00 [显示全部帖子]

再改一下

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
For Each dr As DataRow In dt2.DataRows
    Dim filter As String = ""
    If dr("组名称") = "合计" Then
        filter = "单位 = '合计'"
    Else
        filter = "单位 = '" & dr("单位") & "' and 组名称 = '" & dr("组名称") & "'"
    End If
    Dim fdr As DataRow = dt1.Find(filter)
    If fdr IsNot Nothing Then
        For Each dc As DataCol In dt2.DataCols
            If dr.IsNull(dc.Name) AndAlso fdr.IsNull(dc.Name) = False Then
                dr(dc.Name) = fdr(dc.name)
            End If
        Next
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/10 14:35:00 [显示全部帖子]

以下是引用lrh9537在2014-6-10 14:32:00的发言:
没有数据的怎么填充0

 

再改一下

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
For Each dr As DataRow In dt2.DataRows
    Dim filter As String = ""
    If dr("组名称") = "合计" Then
        filter = "单位 = '合计'"
    Else
        filter = "单位 = '" & dr("单位") & "' and 组名称 = '" & dr("组名称") & "'"
    End If
    Dim fdr As DataRow = dt1.Find(filter)
    If fdr IsNot Nothing Then
        For Each dc As DataCol In dt2.DataCols
            If dr.IsNull(dc.Name)
                If fdr.IsNull(dc.Name) = False Then
                    dr(dc.Name) = fdr(dc.name)
                Else
                    dr(dc.Name) = 0
                End If
            End If
        Next
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/10 14:45:00 [显示全部帖子]

以下是引用lrh9537在2014-6-10 14:39:00的发言:
没有0啊

 

Dim dt1 As DataTable = DataTables("表A")
Dim dt2 As DataTable = DataTables("表B")
For Each dr As DataRow In dt2.DataRows
    Dim filter As String = ""
    If dr("组名称") = "合计" Then
        filter = "单位 = '合计'"
    Else
        filter = "单位 = '" & dr("单位") & "' and 组名称 = '" & dr("组名称") & "'"
    End If
    Dim fdr As DataRow = dt1.Find(filter)
      
    For Each dc As DataCol In dt2.DataCols
        If dr.IsNull(dc.Name) Then
            If fdr IsNot Nothing AndAlso fdr.IsNull(dc.Name) = False Then
                dr(dc.Name) = fdr(dc.name)
            Else
                dr(dc.name) = 0
            End If
        End If
    Next
Next


 回到顶部