Foxtable(狐表)用户栏目专家坐堂 → 跨表复制并自动更新


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

主题:跨表复制并自动更新

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


加好友 发短信
等级:婴狐 帖子:20 积分:249 威望:0 精华:0 注册:2020/1/21 3:36:00
跨表复制并自动更新  发帖心情 Post By:2020/2/7 18:00:00 [只看该作者]

由于看实例没找到答案,请给出完整代码   表A复制表B内容   如表B内容发生变化,表A同步表B内容
表A            表B
1列   2列  1列    2列
1       2       1       
2       3       2       3
3       5       3       5
1       7       1       7
2       8       2       8
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table


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


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/7 20:01:00 [只看该作者]

2个表通过什么进行关联?比如订单表和订单明细可以通过订单编号关联。如果没有关联的数据,无法做同步

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


加好友 发短信
等级:婴狐 帖子:20 积分:249 威望:0 精华:0 注册:2020/1/21 3:36:00
能理解有点蓝的意思,没有关联的对象,如果有关联我想我自己也能处理好  发帖心情 Post By:2020/2/8 1:00:00 [只看该作者]

在论坛里找了个 代码比较适合我的要求,就是代码上有问题,还请帮调整下
 Dim f As New Filler
f.SourceTable = DataTables("订单") '指定数据来源
f.SourceCols = "产品,客户" '指定数据来源列
f.DataTable = DataTables("统计") '指定数据接收表
f.DataCols = "产品,客户" '指定数据接收列
f.Distinct = False
f.Fill() '填充数据

内容会重复出现 如果用 f.Append会报错

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


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

这种方式只能直接贴出数据,无法去重。不管使用什么方式,如果要去重,先解决2楼的问题

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


加好友 发短信
等级:婴狐 帖子:20 积分:249 威望:0 精华:0 注册:2020/1/21 3:36:00
查了几天数据 问题解决了  发帖心情 Post By:2020/2/9 23:57:00 [只看该作者]

我有些不赞同有点蓝的观点,

我用这段代码解决了不用关联可以复制的问题,虽然我不懂代码但还是做到了,只是要往下面加内容却不行了,复制的目的就是为了加内容做表
 Dim f As New Filler
f.SourceTable = DataTables("表A") '指定数据来源
f.SourceCols = "第一列,第二列" '指定数据来源列
f.DataTable = DataTables("表B") '指定数据接收表
f.DataCols = "第一列,第二列" '指定数据接收列

f.Distinct = False

DataTables("表B").DataRows.Clear() '清除原来的数据
f.Fill() '填充数据

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


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/10 8:49:00 [只看该作者]

往下面加内容怎么不行?无法新增行?还是无法录入数据?

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


加好友 发短信
等级:婴狐 帖子:20 积分:249 威望:0 精华:0 注册:2020/1/21 3:36:00
  发帖心情 Post By:2020/2/10 17:57:00 [只看该作者]

因为Clear 把多余的表格都删除了 表A多少内容,表B就多少内容没有多余的行 有没有其他办法添加行 或者针对性的修改下 添加几行


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


加好友 发短信
等级:超级版主 帖子:107807 积分:548386 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/10 20:18:00 [只看该作者]

如果要第一列,第二列数据不重复导入,换种方式吧:http://www.foxtable.com/webhelp/topics/1533.htm

Dim Cols1() As String = {"第一列","第二列"}
For Each dr1 As DataRow In DataTables("表A").datarows
    Dim dr2 As DataRow = DataTables("表B").Find("第一列='" & dr1("第一列") & "' and 第二列='" & dr1("第二列") & "'")
    If dr2 Is Nothing Then
        dr2  = DataTables("表B").AddNew()
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
    End If
Next

 回到顶部