Foxtable(狐表)用户栏目专家坐堂 → 跨表引用求助


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

主题:跨表引用求助

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


加好友 发短信
等级:幼狐 帖子:79 积分:726 威望:0 精华:0 注册:2015/12/14 8:54:00
跨表引用求助  发帖心情 Post By:2019/8/23 16:55:00 [只看该作者]

新手求助老师,有表A,包含列(姓名,省,市,序号)四列;表B,包含列(省,市,第一名,第二名)四列;
如果表B引用表A的数据,想要“第一名”等于省、市列一样,且序号为“01”的姓名,如果有则填入“姓名”,没有则显示“空缺”,该怎么办?

[此贴子已经被作者于2019/8/23 17:01:00编辑过]

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


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

参考:http://www.foxtable.com/webhelp/topics/1451.htm

表B,datacolchanged

If e.DataCol.Name = "省" OrElse e.DataCol.Name = "市"  Then '如果内容发生变动的是品名列
    If e.DataRow.isnull("省") OrElse e.DataRow.isnull("市") Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("第一名") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("表A").Find("[省] = '" & e.DataRow("省") & "' and 市='" & e.DataRow("市") & "' and 序号='01'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("第一名") = dr("姓名")
        Else
            e.DataRow("第一名") = dr("空缺")
        End If
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:79 积分:726 威望:0 精华:0 注册:2015/12/14 8:54:00
  发帖心情 Post By:2019/8/23 17:26:00 [只看该作者]

谢谢老师,这个教学实例我看到了,不过不是我需要的
表B省、市都是固定的,和全国政区那个一样,而且每个后面都对应第一名、第二名、第三名等列,
表A录入省市,和姓名、序号等信息后,想实现表B自动判断,第一名等列,有人还是缺人?

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


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


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


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


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


加好友 发短信
等级:幼狐 帖子:79 积分:726 威望:0 精华:0 注册:2015/12/14 8:54:00
  发帖心情 Post By:2019/8/23 17:59:00 [只看该作者]

哦,研究过了,没弄好,原本计划写表B的afterload事件的,遍历表B,表A有信息的就填充,没有的就标注空缺,没有解决问题才请教老师指导的?
麻烦老师啦!不知道以下代码问题在哪

For Each dr As DataRow In DataTables("表B").Select("省 is not null and 市 is not null")
    Dim fdr1 As DataRow = DataTables("表A").Find("省 = '" & dr("省") & "' and 市 = '" & dr("市") & "' and 序号='01'") 
        If fdr1 IsNot Nothing Then
            dr("第一名") = fdr1("姓名")
        Else
            dr("第一名") = "空缺"
        End If
    Dim fdr2 As DataRow = DataTables("表A").Find("省 = '" & dr("省") & "' and 市 = '" & dr("市") & "' and 序号='02'") 
        If fdr2 IsNot Nothing Then
            dr("第二名") = fdr2("姓名")
        Else
            dr("第二名") = "空缺"
        End If
    Dim fdr3 As DataRow = DataTables("表A").Find("省 = '" & dr("省") & "' and 市 = '" & dr("市") & "' and 序号='03'") 
        If fdr3 IsNot Nothing Then
            dr("第三名") = fdr3("姓名")
        Else
            dr("第三名") = "空缺"
        End If
Next

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


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

请到datacolchanged事件处理,不会就上传实例

 回到顶部