以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 同一列数据来自2个不同表出现异常退出 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87116) |
|
-- 作者:jamhuton -- 发布时间:2016/7/4 9:44:00 -- 同一列数据来自2个不同表出现异常退出 Dim f As New Filler f.SourceTable = DataTables("TAKATA成本") \'指定数据来源 f.SourceCols = "客户简称,月份,运输方式" \'指定数据来源列 f.DataTable = DataTables("开票管理") \'指定数据接收表 f.DataCols = "客户简称,月份,运输方式" \'指定数据接收列 f.ExcludeExistValue = True f.Distinct = True f.append = False f.Fill() \'填充数据 Dim g As New Filler g.SourceTable = DataTables("成本明细") \'指定数据来源 g.SourceCols = "客户简称,月份" \'指定数据来源列 g.DataTable = DataTables("开票管理") \'指定数据接收表 g.DataCols = "客户简称,月份" \'指定数据接收列 g.ExcludeExistValue = True g.Distinct = True g.append = False g.Fill() \'填充数据
|
|
-- 作者:大红袍 -- 发布时间:2016/7/4 9:46:00 -- 你dataColChanged或者dataColChanging事件的代码注释掉,看是否还报错。 |
|
-- 作者:jamhuton -- 发布时间:2016/7/4 10:00:00 -- 去掉后不报错了 |
|
-- 作者:大红袍 -- 发布时间:2016/7/4 10:01:00 -- 检测你的事件代码,一定要判断列名,不然很可能死循环
http://www.foxtable.com/help/topics/1522.htm
|
|
-- 作者:jamhuton -- 发布时间:2016/7/4 10:14:00 -- Select Case e.DataCol.name Case "客户简称","月份" e.DataRow("手册成本") = DataTables("手册业务").Compute("sum(成本合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) End Select Select Case e.DataCol.name Case "客户简称","月份" e.DataRow("手册开票") = DataTables("手册业务").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口成本") = DataTables("成本明细").Compute("sum(成本合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口成本") = DataTables("TAKATA成本").Compute("sum(应付)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口垫付") = DataTables("账单明细").Compute("sum(垫付)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口垫付") = DataTables("TAKATA账单").Compute("sum(垫付费用)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口开票") = DataTables("账单明细").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口开票") = DataTables("TAKATA账单").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select 在这些代码前面做判断?
|
|
-- 作者:大红袍 -- 发布时间:2016/7/4 10:16:00 -- 你这段代码是不影响的。事件里面,肯定有其他代码影响了,贴出完整代码。 |
|
-- 作者:jamhuton -- 发布时间:2016/7/4 10:18:00 --
|
|
-- 作者:大红袍 -- 发布时间:2016/7/4 10:20:00 -- 看6楼,不可能会退出的。不正确执行指什么啊? |
|
-- 作者:jamhuton -- 发布时间:2016/7/4 10:24:00 -- \'Dim f As New Filler \'f.SourceTable = DataTables("TAKATA成本") \'指定数据来源 \'f.SourceCols = "客户简称,月份,运输方式" \'指定数据来源列 \'f.DataTable = DataTables("开票管理") \'指定数据接收表 \'f.DataCols = "客户简称,月份,运输方式" \'指定数据接收列 \'f.ExcludeExistValue = True \'f.Distinct = True \'f.append = False \'f.Fill() \'填充数据 \'Dim g As New Filler \'g.SourceTable = DataTables("成本明细") \'指定数据来源 \'g.SourceCols = "客户简称,月份" \'指定数据来源列 \'g.DataTable = DataTables("开票管理") \'指定数据接收表 \'g.DataCols = "客户简称,月份" \'指定数据接收列 \'g.ExcludeExistValue = True \'g.Distinct = True \'g.append = False \'g.Fill() \'填充数据 Select Case e.DataCol.name Case "客户简称","月份" e.DataRow("手册成本") = DataTables("手册业务").Compute("sum(成本合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) End Select Select Case e.DataCol.name Case "客户简称","月份" e.DataRow("手册开票") = DataTables("手册业务").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口成本") = DataTables("成本明细").Compute("sum(成本合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口成本") = DataTables("TAKATA成本").Compute("sum(应付)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口垫付") = DataTables("账单明细").Compute("sum(垫付)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口垫付") = DataTables("TAKATA账单").Compute("sum(垫付费用)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select Select Case e.DataCol.name Case "客户简称","月份","运输方式" If e.DataRow.IsNull("运输方式") Then e.DataRow("进口开票") = DataTables("账单明细").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\'" ) Else e.DataRow("进口开票") = DataTables("TAKATA账单").Compute("sum(合计)","[客户简称]= \'" & e.DataRow("客户简称") & "\' and [月份]= \'" & e.DataRow("月份") & "\' and [运输方式]= \'" & e.DataRow("运输方式") & "\'" ) End If End Select
|
|
-- 作者:大红袍 -- 发布时间:2016/7/4 10:25:00 -- 7楼的代码,单独写到一个按钮里执行,不要写到datacolchanged事件里面去的啊。 |