以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 从多个表中提取数据的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91010) |
-- 作者:jwt -- 发布时间:2016/9/27 15:41:00 -- 从多个表中提取数据的问题 问题简述:设计了个校招系统,内含四个表 “录用人员” 、“备选人员”、“淘汰人员”、“测评记录”,这四个表中都有共同列“姓名”、“学校”、“身份证号”;其中,“测评记录”为笔试成绩记录表,三个 人员表 分别与 测评记录表 以身份证号列设置了关联,初步设定的是,在测评记录中新增行,只要输入身份证号码,则自动从三个表中匹配数据,“测评记录”表中的“姓名”、“学校”自动输入。我在“测评记录”表中的datacolchanged时间中写了如下代码,但仅适用于“录用人员”表中提取数据。求大神给思路,或帮忙优化下代码。 If e.DataCol.Name = "身份证号" Then If e.NewValue Is Nothing Then e.DataRow("学校") = Nothing e.DataRow("姓名") = Nothing Else Dim dr As DataRow Dim dr1 As DataRow Dim dr2 As DataRow dr = e.DataRow.GetParentRow("录用人员") If dr IsNot Nothing e.DataRow("学校") = dr("学校") e.DataRow("姓名") = dr("姓名") Else dr1 = e.DataRow.GetParentRow("备选人员") If dr1 IsNot Nothing e.DataRow("学校") = dr1("学校") e.DataRow("姓名") = dr1("姓名") Else dr2 = e.DataRow.GetParentRow("淘汰人员") If dr2 IsNot Nothing e.DataRow("学校") = dr2("学校") e.DataRow("姓名") = dr2("姓名") End If End If End If End If End If [此贴子已经被作者于2016/9/27 16:00:56编辑过]
|
-- 作者:jwt -- 发布时间:2016/9/27 16:06:00 -- 已解决,代码没问题,不晓得咋回事。 |
-- 作者:有点蓝 -- 发布时间:2016/9/27 16:07:00 -- If e.DataCol.Name = "身份证号" Then If e.NewValue Is Nothing Then e.DataRow("学校") = Nothing e.DataRow("姓名") = Nothing Else Dim dr As DataRow dr = e.DataRow.GetParentRow("录用人员") If dr IsNot Nothing e.DataRow("学校") = dr("学校") e.DataRow("姓名") = dr("姓名") Else dr = e.DataRow.GetParentRow("备选人员") If dr IsNot Nothing e.DataRow("学校") = dr("学校") e.DataRow("姓名") = dr("姓名") Else dr = e.DataRow.GetParentRow("淘汰人员") If dr IsNot Nothing e.DataRow("学校") = dr("学校") e.DataRow("姓名") = dr("姓名") End If End If End If End If End If |