以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据跨表更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105614)

--  作者:litiemiao
--  发布时间:2017/8/22 22:17:00
--  数据跨表更新

If e.DataCol.Name = "商品条码" Then
    If e.NewValue Is Nothing Then
        e.DataRow("商品名称") = Nothing
        e.DataRow("规格") = Nothing
        e.DataRow("单位") = Nothing
        e.DataRow("进价") = Nothing
        e.DataRow("售价") = Nothing
        e.DataRow("类别编码") = Nothing
        e.DataRow("产地") = Nothing
    Else
        Dim dr As DataRow
       
dr = DataTables("云数据").SqlFind("[商品条码] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("商品名称") = dr("商品名称")
            e.DataRow("规格") = dr("规格")
            e.DataRow("单位") = dr("单位")
            e.DataRow("进价") = dr("进价")
            e.DataRow("售价") = dr("售价")
            e.DataRow("类别编码") = dr("类别编码")
            e.DataRow("产地") = dr("产地")
        End If
    End If
End If

这段代码是执行在表A中商品条码如果在数据库中有对应值,就自动填充商品名称、规格、单位、进价、售价等内容,那么请问,如果表A中的商品条码在数据库中没有对应值,如何让数据库自动更新表A中的数据呢,例如表A中商品条码是1001 在数据库中并没有对应值,那么如何在我在表A中输入各种数据后,自动同步增加到数据库中,还需要将上面的代码在数据库中执行一遍吗?


--  作者:有点蓝
--  发布时间:2017/8/22 22:21:00
--  
表ABeforeSaveDataRow事件

Dim dr As DataRow
dr = DataTables("云数据").SqlFind("[商品条码] = \'" & e.DataRow("商品条码") & "\'")
If dr Is Nothing Then
    dr = DataTables("云数据").AddNew()
    
    dr("商品名称") = e.DataRow("商品名称")
    dr("规格") = e.DataRow("规格")
    \'e.DataRow("单位") = dr("单位")
    \'e.DataRow("进价") = dr("进价")
    \'e.DataRow("售价") = dr("售价")
    \'e.DataRow("类别编码") = dr("类别编码")
    \'e.DataRow("产地") = dr("产地")
    dr.Save
    dr.Remove
End If

--  作者:litiemiao
--  发布时间:2017/8/22 22:44:00
--  
如果没有保存行按钮呢,例如主菜单中只有保存按钮 并没有保存行,例如是保存表呢,应该怎么操作
--  作者:有点蓝
--  发布时间:2017/8/22 22:46:00
--  
保存表时每个需要保存的行都会触发上面的事件
--  作者:litiemiao
--  发布时间:2017/8/22 22:53:00
--  

但是上面的代码并没有发生作用啊 当我保存了之后,我又重新输入这个条码 数据库中并没有对应的值 ,按理来说,我更新了数据库 他应该有这个对应值啊 好了 

 

 

我知道怎么回事了 是因为上面的代码没有加入dr("商品条码") = e.DataRow("商品条码") 这个,所以我在输入这个条码就没有对应值 谢谢大佬 学习到了

[此贴子已经被作者于2017/8/22 22:56:44编辑过]

--  作者:有点蓝
--  发布时间:2017/8/22 22:58:00
--  
2楼的代码并不完整,看懂代码自己改正确