以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多条件跨表引用赋值的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=103581)

--  作者:douglas738888
--  发布时间:2017/7/12 10:19:00
--  多条件跨表引用赋值的问题

请教老师,下面代码能实现表B输入姓名,从表A可引用得到第1、第3列的数据  (跨表引用)

 

如何实现,如表B工作部门输入为“市场部”,部门负责人列就从表A中查找两个条件,一个是岗位职务=“主任”,一个是工作部门=“市场部”,

 

最后,把市场部主任 老王的姓名 引用到表B的部门负责人列中

 

因为只有“工作部门”列是有关联性的,请教老师这种情况怎样跨表引用。    表A和表B未建立关联关系

 

例如      表B                                                                                 表A

 

员工编号    员工姓名    工作部门   部门负责人                    员工编号    员工姓名    工作部门   岗位职务 

 

001           老马          市场部                     老王                005           老王          市场部      主任

 

006           老刘          技术部                     老张                010            老张         技术部      主任

 

002           老李          市场部                     老王

 

If e.DataCol.Name = "员工姓名" Then
    If e.NewValue Is Nothing Then
        e.DataRow("员工编号") = Nothing
    Else
        Dim dr1 As DataRow
        dr1 = DataTables("表A").Find("[员工姓名] = \'" & e.NewValue & "\'")
        If dr1 IsNot Nothing
            e.DataRow("员工编号") = dr1("员工编号")
            e.DataRow("工作部门") = dr1("工作部门") 
        End If
    End If
End If


--  作者:有点甜
--  发布时间:2017/7/12 10:25:00
--  

If e.DataCol.Name = "工作部门" Then
    If e.NewValue Is Nothing Then
        e.DataRow("部门负责人") = Nothing
    Else
        Dim dr1 As DataRow
        dr1 = DataTables("表A").Find("[工作部门] = \'" & e.NewValue & "\' and 岗位职务 = \'主任\'")
        If dr1 IsNot Nothing 
            e.DataRow("部门负责人") = dr1("员工姓名")
        End If
    End If
End If