Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表后台数据表更新代码


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

主题:[求助]跨表后台数据表更新代码

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
[求助]跨表后台数据表更新代码  发帖心情 Post By:2017/2/13 19:31:00 [只看该作者]

老师你好,麻烦修改一下跨表后台数据表更新代码,"

材料入库主表”,"应付款采购主表"均为后台数据表,远程数据库为SQLSERVER

"材料入库主表”的下列字段("供应商名称","仓库名称","录入日期","录入人","入库类型","税率","供应商首字符","结算单号")变化时,”应付款采购主表"相应字段不能自动更新,代码如下:

 

Select Case e.DataCol.name

    Case  "入库单号"

        If Tables("材料入库主表").current("入库类型") = "采购入库"  OrElse Tables("材料入库主表").current("入库类型") = "委外加工入库" Then

            Dim dr1 As DataRow = DataTables("应付款采购主表").Find("入库单号 = '" & e.NewValue  & "'")

            If  dr1 Is Nothing   Then

                dr1 = DataTables("应付款采购主表").AddNew()

                dr1("入库单号") = e.DataRow("入库单号")

                dr1("供应商名称") = e.DataRow("供应商名称")

                dr1("供应商首字符") = e.DataRow("供应商首字符")

                dr1("仓库名称") = e.DataRow("仓库名称")

                dr1("录入日期") = e.DataRow("录入日期")

                dr1("录入人") = e.DataRow("录入人")

                dr1("入库类型") = e.DataRow("入库类型")

                dr1("税率") = e.DataRow("税率")

                e.DataRow("结算单号") = dr1("结算单号")

            End If

        End If

    Case  "供应商名称","仓库名称","录入日期","录入人","入库类型","税率","供应商首字符","结算单号"

        Dim dr1 As DataRow = DataTables("应付款采购主表").find("入库单号 = '" & e.DataRow("入库单号") & "'")

        If dr1 IsNot Nothing Then

            dr1(e.DataCol.Name) = e.DataRow(e.DataCol.Name)

        End If

End Select


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/13 20:09:00 [只看该作者]

代码看不出问题。

2个表是否有对应的单号,单号前后是否有空格。数据库单号列如果不是nvarchar类型的,改为nvarchar,然后去除单号列空格试试。

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 20:20:00 [只看该作者]

查了没问题,发现加载的数据可更新,未加载的无法更新


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


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/14 20:42:00 [只看该作者]

Dim dr1 As DataRow = DataTables("应付款采购主表").sqlfind("入库单号 = '" & e.DataRow("入库单号") & "'")


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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 21:16:00 [只看该作者]

还是不行,是不是涉及到外部数据源

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 21:17:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C


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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 21:18:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C

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


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

sqlfind就是查询外部数据源的。具体上例子说明

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 22:09:00 [只看该作者]

SQLSelect

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


加好友 发短信
等级:二尾狐 帖子:534 积分:4426 威望:0 精华:0 注册:2012/11/28 16:03:00
  发帖心情 Post By:2017/2/14 22:09:00 [只看该作者]

SQLUpdate

 回到顶部