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


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

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

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/23 17:19:00 [只看该作者]

这种方法 http://www.foxtable.com/help/topics/2490.htm

 

不会做,上传实例。


 回到顶部
帅哥哟,离线,有人找我吗?
阿标
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的数据表,不会上传。  帮助文件的   “产品编号”  名字都是一样的,不知道那个是来源 还是接受

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/23 18:04:00 [只看该作者]

写到表A的dataColChange事件,表A是来源表

 

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

 

[此贴子已经被作者于2016/5/23 18:04:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
阿标
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 的时候,都会增加一个数字。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/23 18:08:00 [只看该作者]

新建一个项目,单独做一个foxtable例子发上来。


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


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

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/23 20:41:00 [只看该作者]

请做一个内部表的例子发上来,别人连不上你的数据库。

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


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

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


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/23 21:19:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


 回到顶部
总数 19 上一页 1 2