以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 数据同步更新问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80618) |
||||
-- 作者:zchlln -- 发布时间:2016/1/27 14:42:00 -- 数据同步更新问题 表A新增数据时,表B同步增加数据。表A格式不完全和表B一样,表B需要几列数据依靠表A更新,表B进行更改时,表A不发生变化 那位大神帮看下应该怎么编写 |
||||
-- 作者:大红袍 -- 发布时间:2016/1/27 14:49:00 -- 参考
http://www.foxtable.com/help/topics/2490.htm
列名不同的话, dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
就改成
dr("B表某列1") = e.DataRow("A表某列1") dr("B表某列2") = e.DataRow("A表某列2") |
||||
-- 作者:zchlln -- 发布时间:2016/1/27 15:36:00 -- 的确可以 但表A删除的时候 我不想让表B跟着删 还有就是更改产品编号的话 表B会另起一行而不是在之前那行 [此贴子已经被作者于2016/1/27 15:36:46编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/1/27 15:37:00 -- 你把 DataRowDeleting 的代码去掉即可。 [此贴子已经被作者于2016/1/27 15:36:51编辑过]
|
||||
-- 作者:zchlln -- 发布时间:2016/1/27 15:39:00 -- 我没写 DataRowDeleting 的代码 也删除表A 表B也会删除掉的 |
||||
-- 作者:大红袍 -- 发布时间:2016/1/27 15:41:00 -- 你做个例子上传上来测试一下。 |
||||
-- 作者:zchlln -- 发布时间:2016/1/27 15:41:00 -- 还有就是更改产品编号的话 表B会另起一行而不是在之前那行 |
||||
-- 作者:大红袍 -- 发布时间:2016/1/27 15:42:00 -- 看6楼。 |
||||
-- 作者:zchlln -- 发布时间:2016/1/27 16:00:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2016/1/27 16:14:00 -- Select Case e.DataCol.name Case "第一列" Dim dr As DataRow If e.OldValue = Nothing dr = DataTables("表B").Find("第一列 = \'" & e.newvalue & "\'") Else dr = DataTables("表B").Find("第一列 = \'" & e.OldValue & "\'") End If If dr Is Nothing Then dr = DataTables("表B").AddNew() dr("第一列") = e.DataRow("第一列") dr("第二列") = e.DataRow("第二列") dr("第三列") = e.DataRow("第三列") Else dr("第一列") = e.DataRow("第一列") End If Case "第三列","第二列" Dim dr As DataRow = DataTables("表B").Find("第一列 = \'" & e.DataRow("第一列") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |