Foxtable(狐表)用户栏目专家坐堂 → 数据跨表更新


  共有2097人关注过本帖树形打印复制链接

主题:数据跨表更新

帅哥哟,离线,有人找我吗?
litiemiao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:998 威望:0 精华:0 注册:2012/10/11 11:11:00
数据跨表更新  发帖心情 Post By: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中输入各种数据后,自动同步增加到数据库中,还需要将上面的代码在数据库中执行一遍吗?


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107859 积分:548652 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:998 威望:0 精华:0 注册:2012/10/11 11:11:00
  发帖心情 Post By:2017/8/22 22:44:00 [只看该作者]

如果没有保存行按钮呢,例如主菜单中只有保存按钮 并没有保存行,例如是保存表呢,应该怎么操作

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107859 积分:548652 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/22 22:46:00 [只看该作者]

保存表时每个需要保存的行都会触发上面的事件

 回到顶部
帅哥哟,离线,有人找我吗?
litiemiao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:998 威望:0 精华:0 注册:2012/10/11 11:11:00
  发帖心情 Post By:2017/8/22 22:53:00 [只看该作者]

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

 

 

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

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

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107859 积分:548652 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/22 22:58:00 [只看该作者]

2楼的代码并不完整,看懂代码自己改正确

 回到顶部