以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  跨表更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122749)

--  作者:DLW77
--  发布时间:2018/8/1 15:27:00
--  跨表更新
老师,我在员工表写入这个代码,我先是在员工表中录入姓名,性别等资料,后在另一个表中录入银行卡资料,但这个要重置列后才会更新,如果我想在银行卡资料表中录入银行卡号时,员工表就能更新,不用重置列,要怎么改这个代码?
If e.DataCol.Name = "姓名" Then
    If e.NewValue Is Nothing Then
        e.DataRow("银行卡号") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("银行卡登记").Find("[姓名] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("银行卡号") = dr("银行卡号")
        End If
        If e.DataCol.Name = "银行卡号"
            Dim Filter As String = "[姓名] = \'" & e.DataRow("姓名") & "\'"
            DataTables("员工资料").ReplaceFor("银行卡号", e.NewValue, Filter)
        End If
    End If
End If


--  作者:有点甜
--  发布时间:2018/8/1 15:36:00
--  
If e.DataCol.Name = "姓名" Then
    If e.NewValue Is Nothing Then
        e.DataRow("银行卡号") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("银行卡登记").Find("[姓名] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("银行卡号") = dr("银行卡号")
        End If
    End If
End If
If e.DataCol.Name = "银行卡号" OrElse e.DataCol.Name = "姓名" then
    Dim Filter As String = "[姓名] = \'" & e.DataRow("姓名") & "\'"
    DataTables("员工资料").ReplaceFor("银行卡号", e.datarow("银行卡"), Filter)
End If
[此贴子已经被作者于2018/8/1 15:36:44编辑过]

--  作者:DLW77
--  发布时间:2018/8/1 15:42:00
--  老师,还是要重置列才能显示
老师,我刚改了代码,重新了新增,还是要重置列才能显示图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2018/8/1 15:44:00
--  

银行卡资料表的datacolchanged事件,写代码

 

If e.DataCol.Name = "银行卡号" OrElse e.DataCol.Name = "姓名" then
    Dim Filter As String = "[姓名] = \'" & e.DataRow("姓名") & "\'"
    DataTables("员工资料").ReplaceFor("银行卡号", e.datarow("银行卡"), Filter)
End If


--  作者:DLW77
--  发布时间:2018/8/1 15:49:00
--  谢谢老师,可以了
谢谢老师,可以了