以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表同步  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179467)

--  作者:shqpldczj
--  发布时间:2022/8/25 15:51:00
--  表同步
表A“合同主表”,表B“外包合同”,关联是外包合同的主合同号=合同主表的合同编号。
我想B表的所有行的项目名称 = A表的项目名称

--  作者:有点蓝
--  发布时间:2022/8/25 16:04:00
--  
方法1、使用表达式列:http://www.foxtable.com/webhelp/topics/0106.htm
--  作者:shqpldczj
--  发布时间:2022/8/25 18:54:00
--  查找回填
我现在是A,B表都有数据了,我就是想菜单做个按钮判断如果B表的项目名称字段如果为空,就按主合同号去合同主表找到相同编号然后把项目名称回填到B表里


--  作者:有点蓝
--  发布时间:2022/8/25 20:25:00
--  
for each dr as datarow in datatables("B").select("项目名称 is null")
dim pr as datarow = datatables("A").find("主合同号=\'" & dr("主合同号") & "\'")
if pr isnot nothing then
dr("项目名称") = pr("项目名称")
end if
next

--  作者:shqpldczj
--  发布时间:2022/8/25 20:35:00
--  谢谢
For Each dr As DataRow In DataTables("外包合同").DataRows
    If dr("项目名称") IsNot Nothing
        Dim dr2 As DataRow = DataTables("合同主表").Find("[合同编号] = \'"& dr("主合同号") &"\'")
        If dr2 IsNot Nothing Then
            dr("项目名称") = dr2("项目名称")
            dr("工程地址") = dr2("工程地址")
        End If
    End If
Next
msgbox("同步完成!")

--  作者:有点蓝
--  发布时间:2022/8/25 20:42:00
--  
这样性能很差。假如只有一行的"项目名称"是空的,也有遍历整个表吗!按照4楼的方式只查询"项目名称"是空的记录即可