以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为另一个表赋值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34360)

--  作者:lc_guo
--  发布时间:2013/6/6 11:47:00
--  为另一个表赋值

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.rar

 

例子如上。

我希望当表A中输入 材料 年份 月份 数量 之后,在表B中能新增一行并且赋上表A相应列的值,这点虽然没问题了,

但是,当我在表A中输入一行并且在表B中已经生成该行之后,如果我在表A更改该行,却会在表B另外生成一行,而不是

相应更改该行。


应该如何改一下代码,才能让我在表A中更改某一行的时候,在表B中也相应更改该行,而不会领增一行新数据呢?

(主要是代码存放的位置和addnew的位置不知道怎么放)


--  作者:Bin
--  发布时间:2013/6/6 11:58:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.foxdb


--  作者:liweicxy
--  发布时间:2013/6/6 17:57:00
--  
事例做个.table的。
--  作者:XYT
--  发布时间:2013/6/6 18:01:00
--  

Select Case e.DataCol.Name
    Case "名称","年份","月份","数量"
        If e.DataRow.IsNull("名称")=False AndAlso e.DataRow.IsNull("年份")=False AndAlso e.DataRow.IsNull("月份")=False AndAlso e.DataRow.IsNull("数量")=False Then
            Dim drr As DataRow = DataTables("表B").Find("名称=\'" & e.DataRow("名称") & "\' and 年份=\'" & e.DataRow("年份")  & "\' and 月份=\'" & e.DataRow("月份") & "\' and 数量=\'" & e.DataRow("数量") & "\'")
            If drr IsNot Nothing Then
                drr("名称")=e.DataRow("名称")
                drr("年份")=e.DataRow("年份")
                drr("月份")=e.DataRow("月份")
                drr("数量")=e.DataRow("数量")
            Else
                Dim dr As DataRow =  DataTables("表B").AddNew
                dr("名称")=e.DataRow("名称")
                dr("年份")=e.DataRow("年份")
                dr("月份")=e.DataRow("月份")
                dr("数量")=e.DataRow("数量")
            End If
        End If
End Select

帮你把代码贴出来了


--  作者:lc_guo
--  发布时间:2013/6/7 11:11:00
--  

这个代码貌似是不对的哈。这个代码的运行结果,只要表A任意一行更改后,表B都会新生成一行,改行为表A更改后

的那行。

我的需求是表A更改后,表B找到相应行也同样更改。

貌似是要用到oldvalue。。。