以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于多表填充一个表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172556)

--  作者:爱相随
--  发布时间:2021/10/19 11:53:00
--  关于多表填充一个表
老师,我有两个表,表A和表B,都有一列为“编号”列,表C也有一列为“编号”列,现在想通过一个按钮,将表A和表B的“编号”不重复地填充到表C的“编号”列,以后无论表A或表B,如果有新增的“编号”,则自动地填充到表C中去。麻烦老师贴一下代码,谢谢!(一个表填充另一个表的代码是会的,但多表填充一个表的代码不会,关键是这个逻辑想不明白)
--  作者:有点蓝
--  发布时间:2021/10/19 13:50:00
--  
参考:http://www.foxtable.com/webhelp/topics/1453.htm

表A和表Bdatacolchanged

If e.DataCol.Name = "编号" Then
If e.NewValue Isnot Nothing Then
        
Dim dr As DataRow
        dr = 
DataTables("表C").Find("[编号] = \'" & e.NewValue & "\'")
        If
 dr Is Nothing

            
dr = DataTables("表C").addnew
          
dr("编号") e.NewValue
        End If
End If
End
 If

--  作者:爱相随
--  发布时间:2021/10/19 17:03:00
--  
嗯,我先试试,谢谢您!!
--  作者:爱相随
--  发布时间:2021/11/5 11:49:00
--  
老师,如何再增加个条件选项呢?比如A表B表还有一列为债务类型的,除了编号不重复外,要将债务类型列中债务类型为“应付工程款”的行排除掉不被填充到C表中,此条件怎么加呢?谢谢
--  作者:爱相随
--  发布时间:2021/11/5 11:50:00
--  
以下是引用有点蓝在2021/10/19 13:50:00的发言:
参考:http://www.foxtable.com/webhelp/topics/1453.htm

表A和表Bdatacolchanged

If e.DataCol.Name = "编号" Then
If e.NewValue Isnot Nothing Then
        
Dim dr As DataRow
        dr = 
DataTables("表C").Find("[编号] = \'" & e.NewValue & "\'")
        If
 dr Is Nothing

            
dr = DataTables("表C").addnew
          
dr("编号") e.NewValue
        End If
End If
End
 If


老师,如何再增加个条件选项呢?比如A表B表还有一列为债务类型的,除了编号不重复外,要将债务类型列中债务类型为“应付工程款”的行排除掉不被填充到C表中,此条件怎么加呢?谢谢


--  作者:有点蓝
--  发布时间:2021/11/5 12:03:00
--  
If e.NewValue Isnot Nothing Then
改为
If e.NewValue Isnot Nothing andalso e.datarow("债务类型") <> "应付工程款" Then

--  作者:爱相随
--  发布时间:2021/11/5 15:50:00
--  
非常感谢老师的指导!!!