以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 跨表引用求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139868) |
-- 作者:piratesytu -- 发布时间:2019/8/23 16:55:00 -- 跨表引用求助 新手求助老师,有表A,包含列(姓名,省,市,序号)四列;表B,包含列(省,市,第一名,第二名)四列; 如果表B引用表A的数据,想要“第一名”等于省、市列一样,且序号为“01”的姓名,如果有则填入“姓名”,没有则显示“空缺”,该怎么办? [此贴子已经被作者于2019/8/23 17:01:00编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2019/8/23 17:26:00 -- 谢谢老师,这个教学实例我看到了,不过不是我需要的 表B省、市都是固定的,和全国政区那个一样,而且每个后面都对应第一名、第二名、第三名等列, 表A录入省市,和姓名、序号等信息后,想实现表B自动判断,第一名等列,有人还是缺人?
|
-- 作者:有点蓝 -- 发布时间:2019/8/23 17:28:00 -- 在看看:http://www.foxtable.com/webhelp/topics/1453.htm |
-- 作者:有点蓝 -- 发布时间:2019/8/23 17:28:00 -- http://www.foxtable.com/webhelp/topics/1592.htm |
-- 作者:piratesytu -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2019/8/23 20:18:00 -- 请到datacolchanged事件处理,不会就上传实例 |