Foxtable(狐表)用户栏目专家坐堂 → 请教一下


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

主题:请教一下

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


加好友 发短信
等级:四尾狐 帖子:989 积分:8833 威望:0 精华:0 注册:2016/4/10 14:33:00
请教一下  发帖心情 Post By:2019/9/4 14:43:00 [只看该作者]

现有表ABCDEFG 想把它们的第一列,第二列,第三列,第四列,第五列以不重复的形式增加到表H中这个呢能够实现吗?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 15:14:00 [只看该作者]

遍历这些表,逐行添加,添加前先查询表H是否有相同的数据,没有再新增行

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


加好友 发短信
等级:四尾狐 帖子:989 积分:8833 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/9/4 16:43:00 [只看该作者]

Dim f1 As New Filler
f1.SourceTable = DataTables("收入")
f1.SourceCols = "第五列,第六列" '指定数据来源列
f1.DataTable = DataTables("统计")
f1.DataCols = "第五列,第六列" '指定数据接收列

f1.Filter = "项目 is not null"
Dim dr As DataTable = Tables("收入")
If DataTables("统计").Find("第五列 = '" & dr.第五列 & "' And 第六列 = '" & dr.第六列 & "'")Is Nothing Then
Else
f1.Fill()
Dim f2 As New Filler

f2 = New Filler
f2.SourceTable = DataTables("成本")
f2.SourceCols = "第五列,第六列" '指定数据来源列

f2.DataTable = DataTables("统计")
f2.DataCols = "第五列,第六列" '指定数据接收列

f2.Filter = "项目 is not null"
Dim dr2 As DataTable = Tables("成本")
If DataTables("统计").Find("第五列 = '" & dr2.第五列 & "' And 第六列 = '" & dr2.第六列 & "'")Is Nothing Then
Else
f2.Fill()
老师,编译错误。。。还是不会。。。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 16:50:00 [只看该作者]

不能使用Filter 

For Each dr1 As DataRow In DataTables("表A").datarows
    Dim dr2 As DataRow = DataTables("表H").find("第五列 = '" & dr1("第五列") & "' And 第六列 = '" & dr1("第六列") & "'")
    If dr2 Is Nothing
        dr2 = DataTables("表H").AddNew()
        For Each dc As DataCol In DataTables("表A").DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    End If
Next

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


加好友 发短信
等级:四尾狐 帖子:989 积分:8833 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/9/4 17:21:00 [只看该作者]

Dim Cols1() As String = {"第五列","第六列"}
Dim Cols2() As String = {"第五列","第六列"}
For Each dr1 As DataRow In DataTables("收入").datarows
    Dim dr2 As DataRow = DataTables("统计").find("第五列 = '" & dr1("第五列") & "' And 第六列 = '" & dr1("第六列") & "'")
    If dr2 Is Nothing
        dr2 = DataTables("统计").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
      Next
    End If
Next
老师这段代码应该还可以改善一下,第一数据量大时很卡,第二没有排除空白行。。。
[此贴子已经被作者于2019/9/4 17:31:33编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 17:53:00 [只看该作者]

据量大这个没有办法,如果sql熟练可以考虑直接使用SQL更新。

For Each dr1 As DataRow In DataTables("收入").select("第五列 is not null")

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


加好友 发短信
等级:四尾狐 帖子:989 积分:8833 威望:0 精华:0 注册:2016/4/10 14:33:00
  发帖心情 Post By:2019/9/4 19:06:00 [只看该作者]

老师,还请教一下,那个空白行该如何排除?

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/5 8:42:00 [只看该作者]

看6楼

 回到顶部