以文本方式查看主题

-  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