以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表A自动复制行到表B,求表A的相应行自动删除的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179674)

--  作者:13315253800
--  发布时间:2022/9/2 18:19:00
--  表A自动复制行到表B,求表A的相应行自动删除的代码

请教表A自动复制行到表B,表A的相应行自动删除的代码

假定表A有个逻辑列,希望在某行选中此逻辑列时,自动将此行复制到表B,表A的相应行自动删除的代码怎样补充,请老师指导。

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"\'A表数据来源列
    
Dim nmb() As String = {"B1","B2","B3","B4"} \'B表数据接收列
    
Dim dr As DataRow = DataTables("B").AddNew
    
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    
Next
End
 If


--  作者:有点蓝
--  发布时间:2022/9/3 8:52:00
--  
……
    For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    
Next
e.DataRow.delete
End
 If

--  作者:13315253800
--  发布时间:2022/9/3 10:51:00
--  
蓝老师,按您的提示,我试了一下,结果是复制到表B的这一行在表B中删除了。如果想只删除表A中的这一行,也就是从表A中复制到了表B,表A中删除,表B中保留,代码怎么修改一下?请蓝老师再指导
--  作者:有点蓝
--  发布时间:2022/9/3 11:53:00
--  
代码放错地方了吧,应该放到表A
--  作者:13315253800
--  发布时间:2022/9/3 12:06:00
--  
是在表A的DataColChanged事件里
--  作者:13315253800
--  发布时间:2022/9/3 12:09:00
--  
是我搞错了,谢谢蓝老师的指导!
--  作者:有点蓝
--  发布时间:2022/9/3 13:48:00
--  
那不可能会删除表b。除非触发了其它代码。a和b是关联表?