以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]跨表后台数据表更新代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96127) |
-- 作者:liuyixin662 -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间:2017/2/13 20:09:00 -- 代码看不出问题。 2个表是否有对应的单号,单号前后是否有空格。数据库单号列如果不是nvarchar类型的,改为nvarchar,然后去除单号列空格试试。
|
-- 作者:liuyixin662 -- 发布时间:2017/2/14 20:20:00 -- 查了没问题,发现加载的数据可更新,未加载的无法更新 |
-- 作者:有点蓝 -- 发布时间:2017/2/14 20:42:00 -- Dim dr1 As DataRow = DataTables("应付款采购主表").sqlfind("入库单号 = \'" & e.DataRow("入库单号") & "\'") |
-- 作者:liuyixin662 -- 发布时间:2017/2/14 21:16:00 -- 还是不行,是不是涉及到外部数据源 |
-- 作者:liuyixin662 -- 发布时间:2017/2/14 21:17:00 -- Dim cmd As New SQLCommand Dim dt As DataTable cmd.C |
-- 作者:liuyixin662 -- 发布时间:2017/2/14 21:18:00 -- Dim cmd As New SQLCommand Dim dt As DataTable cmd.C |
-- 作者:有点蓝 -- 发布时间:2017/2/14 21:52:00 -- sqlfind就是查询外部数据源的。具体上例子说明 |
-- 作者:liuyixin662 -- 发布时间:2017/2/14 22:09:00 -- SQLSelect |
-- 作者:liuyixin662 -- 发布时间:2017/2/14 22:09:00 -- SQLUpdate |