Foxtable(狐表)用户栏目专家坐堂 → [求助]两个表之间的关联问题


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

主题:[求助]两个表之间的关联问题

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
[求助]两个表之间的关联问题  发帖心情 Post By:2016/5/22 17:47:00 [显示全部帖子]

请教一下各位大神,我之前有一个表,已经有数据在里面。   表名是 (人员基本信息),列有(姓名),(身份证号码)(手机号码)等。 

 现在通过SQL加载了外部数据表,增加了一个表名为(会员),列有(名字),(身份证),(手机)等。

现在想把原有的 (人员基本信息) 表里面是数据,同步到  (会员)  这个表对应的列来。要怎么实现呢?   

尝试过父子关联表但不能实现。主要是之前的表里面已经有了一部分数据了,想也一起同步过来。

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/22 17:50:00 [显示全部帖子]

For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")


这个金额这部分可以取消的吗。因为不需要这个条件

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/22 18:05:00 [显示全部帖子]

dim f As New Filler
f
.SourceTable = DataTables("订单"'指定数据来源
f
.SourceCols = "产品,客户" '指定数据来源列
f
.DataTable = DataTables("统计"'指定数据接收表
f
.DataCols = "产品,客户" '指定数据接收列
f
.Fill() 
'填充数据


我用这个来填充,但是 接收表 里面,会重复循环出现多个 来源表 里面的名单。

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 10:55:00 [显示全部帖子]

感谢大神,加上代码后不重复了,但是在来源表修改一行的数据后, 会在接受表重新添加了一行,而不是修改那一行数据。

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 17:15:00 [显示全部帖子]

换下面这个方式连接,(表A)是来源表, (表B)是接受表,   每修改 表A的 一行的数据,表B就会添加一次 表A 所有行的数据。

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 17:17:00 [显示全部帖子]

用非关联表添加,就会自己重复添加行,直接死循环了

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 17:59:00 [显示全部帖子]


Select Case e.DataCol.name
    Case "表A"
        Dim dr As DataRow = DataTables("表B").Find("表B = '" & e.OldValue & "'")
        If dr Is Nothing Then 
            dr = DataTables("表B").AddNew()
            dr("表A列1") = e.DataRow("表B列1")
            dr("表A列2") = e.DataRow("表B列2")
            dr("表A列3") = e.DataRow("表B列3")
        Else
            dr("表A列1") = e.DataRow("表B列1")
        End If
    Case "表B列2","表B列3"
        Dim dr As DataRow = DataTables("表B").Find("表B列1 = '" & e.DataRow("表A列1") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select


我这样对吗? 项目有个SQL的数据表,不会上传。  帮助文件的   “产品编号”  名字都是一样的,不知道那个是来源 还是接受

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 18:05:00 [显示全部帖子]

Dim f As New Filler
f.SourceTable = DataTables("表A") '指定数据来源
f.SourceCols = "表A列1,表A列2" '指定数据来源列
f.DataTable = DataTables("表B") '指定数据接收表
f.DataCols = "表B列1,表B列2" '指定数据接收列
f.ExcludeExistValue = True
f.Fill() '填充数据Next



我加了这一个,才表B才有变化, 修改也不会新增一行。 但是我的表B里面有一个序号 是SQL外部数据源的主键, 这个序号,在我每修改一次 表A 的时候,都会增加一个数字。

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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 20:38:00 [显示全部帖子]

就是来源表,修改内容一次, 接受表序列号会多一位数
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


加好友 发短信
等级:幼狐 帖子:53 积分:821 威望:0 精华:0 注册:2013/1/10 10:35:00
  发帖心情 Post By:2016/5/23 21:09:00 [显示全部帖子]

内建表的序号, 没有来源表修改,接受表增加的这个问题。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


 回到顶部
总数 11 1 2 下一页