以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 从access转换到Sql数据源后出的问题,求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8250) |
-- 作者:shixia -- 发布时间:2010/9/23 17:37:00 -- 从access转换到Sql数据源后出的问题,求助 请问以上提示是什么意思? [此贴子已经被作者于2010-9-24 10:36:55编辑过]
|
-- 作者:blackzhu -- 发布时间:2010/9/24 7:26:00 -- 查查列的类型,是不是月上缴_3列的类型不对? |
-- 作者:狐狸爸爸 -- 发布时间:2010/9/24 9:05:00 -- 1、看看列类型是否正确 2、SQL Server的SQL语法和Access有细微差别,转换之后,在执行SQL测试一下你的SQL语句。 |
-- 作者:shixia -- 发布时间:2010/9/24 10:12:00 -- 这是在SQLCrossTableBuilder中生成的表,其中列“月上缴”也是生成的列。该代码原来在 Access中运行正常,转换成SQL后,对逻辑列和日期列代码作了调整。 以下是我变态代码,该代码在我的项目中运行是最慢的一个,我总想减肥提高效率,但是苦于对SQL不精通,用SQLCrossTableBuilder也只能实现部分功能(比如增加一个列),以前我曾提出一想法(http://www.foxtable.com/dispbbs.asp?boardid=2&Id=6354&page=2 http://www.foxtable.com/dispbbs.asp?boardid=2&Id=6253&page=2 ),狐爸表示难以解决。现贴出,看大家能不能给点建议和指导。 Dim g As New SQLCrossTableBuilder("费用核算表","收费") g.C g.AddTable("收费","任务人","人员管理","姓名") g.AddCols("人员管理","姓名","返回比例","任务","月扣款","应发工资","费用","上缴","超费用比例") g.HGroups.AddDef("交款日期", "月份") g.VGroups.AddDef("任务人") g.Totals.AddDef("收费金额", "月收入") g.Totals.AddExp("收费金额累计","0") g.Totals.AddDef("任务", AggregateEnum.Average) g.Totals.AddExp("任务进度","[收费金额]/[任务]") g.Totals.AddDef("返回比例",AggregateEnum.Average) g.Totals.AddExp("纯收入","[收费金额]*(1-[返回比例])") g.Totals.AddExp("应发工资","[应发工资]",AggregateEnum.Average) g.Totals.AddExp("上月未发工资","0") g.Totals.AddDef("费用",AggregateEnum.Average) g.Totals.AddDef("上缴",AggregateEnum.Average) g.Totals.AddExp("月扣款","0") g.Totals.AddExp("考评款","0") g.Totals.AddDef("超费用比例",AggregateEnum.Average) g.Totals.AddExp("月上缴","0") g.Totals.AddExp("月上缴累计","0") g.Totals.AddExp("上月余额","0") g.Totals.AddExp("可用款","0") g.Totals.AddExp("实发工资","0") g.Totals.AddExp("补发工资","0") g.Totals.AddExp("未发工资","0") g.Totals.AddExp("月可报费用","0") g.Totals.AddExp("超任务费用","0") g.Totals.AddExp("可报费用累计","0") g.Totals.AddExp("余额","0") \'等于 可用款 - 实发工资 -补发工资-月可报费用 g.Totals.AddExp("已报费用","0") g.Totals.AddExp("已报费用累计","0") g.Totals.AddExp("未报费用累计","0") g.Decimals=2 \'整数型,用于设置统计结果要保留的小数位数. g.Filter = "[任务年度]=" & de.year & "And [交款日期] is not null And [二评] = 1 And [任务人]<>\'中心\'" g.Build \'生成统计表 \'判断有无相关行 Dim cmdw As New SQLCommand Dim dtw As datatable cmdw.C cmdw.CommandText = "SELECT DISTINCT 票据号码 From {收费} where [任务年度]=" & de.year & "And [交款日期] is not null And [二评] = 1 And [任务人]<>\'中心\'" dtw = cmdw.ExecuteReader() If dtw.DataRows.Count>0 Then Dim cmd As New SQLCommand Dim dt As datatable cmd.C cmd.CommandText = "SELECT DISTINCT 姓名 From {人员管理} Where [单位名称]=\'认证中心\' And [任务] > 0" dt = cmd.ExecuteReader() Dim ry As String = dt.GetComboListString("姓名") Dim Values() As String Values = ry.split("|") For i As Integer = 0 To Tables("费用核算表").count-1 \'进度条 StatusBar.ProgressBar.Visible =True StatusBar.Refresh() StatusBar.ProgressBar.Maximum=Tables("费用核算表").count-1 StatusBar.ProgressBar.Value = i For ii As Integer = 1 To ry.split("|").length \'直接在后台数据库中提取人员管理月扣款 Dim ldmt As Double Dim cmdmt As New SQLCommand cmdmt.C cmdmt.CommandText = "Select Sum(月扣款) From {人员管理} Where [姓名] = \'" & Values(ii-1) & "\'" ldmt = cmdmt.ExecuteScalar() \'从后台数据库中业务表中提取一评值 Dim ldmt2 As Double Dim cmdmt2 As New SQLCommand cmdmt2.C cmdmt2.CommandText = "Select Sum(一评值) From {业务} Where [二评]=1 And [缴款]=1 And [任务人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) =" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldmt2 = cmdmt2.ExecuteScalar() \'从后台数据库中业务表中提取二评值,用于扣任务人的款 Dim ldmt3 As Double Dim cmdmt3 As New SQLCommand cmdmt3.C cmdmt3.CommandText = "Select Sum(二评值) From {业务} Where [二评]=1 And [缴款]=1 And [任务人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) =" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldmt3 = cmdmt3.ExecuteScalar() \'从后台数据库中业务表中提取二评值,用于扣一评人的款 Dim ldmt4 As Double Dim cmdmt4 As New SQLCommand cmdmt4.C cmdmt4.CommandText = "Select Sum(二评值) From {业务} Where [二评]=1 And [缴款]=1 And [一评人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) =" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldmt4 = cmdmt4.ExecuteScalar() Tables("费用核算表").Rows(i)("月扣款_" & ii & "")=ldmt+ldmt2+ldmt3+ldmt4 Tables("费用核算表").Rows(i)("考评款_" & ii & "")=ldmt2+ldmt3+ldmt4 \'直接在后台数据库中提取支出表中的已报费用 Dim ldm As Double Dim cmdm As New SQLCommand cmdm.C cmdm.CommandText = "Select Sum(流出金额) From {支出} Where 已拨款=1 And 收支类型 <> \'工资\' And 收支类型 <> \'借出\' And 收支类型 <> \'还款\' And 收支类型 <> \'联合办案\' And 任务人 = \'" & Values(ii-1) & "\' And Month(签字日期) =" & Tables("费用核算表").rows(i)("月份") & "And 年度 =" & de.year ldm = cmdm.ExecuteScalar() Tables("费用核算表").rows(i)("已报费用_" & ii & "")=ldm If i=0 Then \'第一行上月余额为0 Tables("费用核算表").rows(i)("上月余额_" & ii & "") =0 Tables("费用核算表").rows(i)("上月未发工资_" & ii & "")=0 \'第一个月的上月未发工资等于 0 Tables("费用核算表").rows(i)("收费金额累计_" & ii & "")= Tables("费用核算表").rows(i)("收费金额_" & ii & "") Tables("费用核算表").rows(i)("已报费用累计_" & ii & "")= Tables("费用核算表").rows(i)("已报费用_" & ii & "") Else Tables("费用核算表").rows(i)("上月余额_" & ii & "") =Tables("费用核算表").rows(i-1)("余额_" & ii & "") \'只要不是第一行,上月余额等于上行的余额 Tables("费用核算表").rows(i)("上月未发工资_" & ii & "")= Tables("费用核算表").rows(i-1)("未发工资_" & ii & "") \'除第一个月以外,上月未发工资 等于 上个月的未发工资 ,而上个月的未发工资 = 上个月应发工资+上上个月未发结转 -上个月实发 -上个月补发 Tables("费用核算表").rows(i)("收费金额累计_" & ii & "")= Tables("费用核算表").rows(i-1)("收费金额累计_" & ii & "")+ Tables("费用核算表").rows(i)("收费金额_" & ii & "") Tables("费用核算表").rows(i)("已报费用累计_" & ii & "")= Tables("费用核算表").rows(i-1)("已报费用累计_" & ii & "")+ Tables("费用核算表").rows(i)("已报费用_" & ii & "") End If \'计算 月上缴款 If Tables("费用核算表").rows(i)("收费金额累计_" & ii & "")<= Tables("费用核算表").rows(i)("任务_" & ii & "") \'没有超出总任务时 Dim ss As Double ss=Tables("费用核算表").Rows(i)("上缴_" & ii & "") * Tables("费用核算表").Rows(i)("收费金额_" & ii & "")/Tables("费用核算表").Rows(i)("任务_" & ii & "") Tables("费用核算表").Rows(i)("月上缴_" & ii & "")=ss Elseif Tables("费用核算表").rows(i)("收费金额累计_" & ii & "") > Tables("费用核算表").rows(i)("任务_" & ii & "") \'超出总任务时 If Tables("费用核算表").rows(i)("任务_" & ii & "") >= Tables("费用核算表").rows(i-1)("收费金额累计_" & ii & "") Then \'超过任务的转折时点只有一个月,判断标准为:在本月累计收入已超总任务的前提下,总任务如果比上个月收入累计 大的话,那么这个月就是转折时点 Dim sw As Double = _ Tables("费用核算表").Rows(i)("上缴_" & ii & "") * _ ( Tables("费用核算表").Rows(i)("任务_" & ii & "") - Tables("费用核算表").Rows(i-1)("收费金额累计_" & ii & "") ) / Tables("费用核算表").Rows(i)("任务_" & ii & "") + _ ( Tables("费用核算表").Rows(i)("收费金额累计_" & ii & "")-Tables("费用核算表").Rows(i)("任务_" & ii & ""))*(1-Tables("费用核算表").rows(i)("返回比例_" & ii & "")) *(1-Tables("费用核算表").rows(i)("超费用比例_" & ii & "")) \'超任务部分扣除返回后的纯收入,再扣留超任务费用后的值 是应缴额 Tables("费用核算表").Rows(i)("月上缴_" & ii & "")=sw Else \'过了超任务时点后的几个月内, Dim sq As Double = _ Tables("费用核算表").Rows(i)("收费金额_" & ii & "")*(1-Tables("费用核算表").rows(i)("返回比例_" & ii & "")) *(1-Tables("费用核算表").rows(i)("超费用比例_" & ii & "")) \'扣除返回后的纯收入 再扣留超任务的费用后的值就是应缴额 Tables("费用核算表").Rows(i)("月上缴_" & ii & "")=sq End If End If If i=0 Then \'第一行上月余额为0 Tables("费用核算表").rows(i)("月上缴累计_" & ii & "")=Tables("费用核算表").rows(i)("月上缴_" & ii & "") Else Tables("费用核算表").rows(i)("月上缴累计_" & ii & "")= Tables("费用核算表").rows(i-1)("月上缴累计_" & ii & "")+ Tables("费用核算表").rows(i)("月上缴_" & ii & "") End If \'如果 纯收入-上缴-月扣款+上月余额后>0 ,才有可用款 If Tables("费用核算表").rows(i)("收费金额_" & ii & "")*(1 -Tables("费用核算表").rows(i)("返回比例_" & ii & ""))- Tables("费用核算表").Rows(i)("月上缴_" & ii & "")- Tables("费用核算表").Rows(i)("月扣款_" & ii & "")+Tables("费用核算表").rows(i)("上月余额_" & ii & "") >0 Then Dim s As Double= _ Tables("费用核算表").rows(i)("收费金额_" & ii & "")*(1-Tables("费用核算表").rows(i)("返回比例_" & ii & ""))- _ Tables("费用核算表").Rows(i)("月上缴_" & ii & "")- _ Tables("费用核算表").Rows(i)("月扣款_" & ii & "")+ _ Tables("费用核算表").rows(i)("上月余额_" & ii & "") Dim Digits As Integer = 0 \'要保留的小数位数,根据需要修改 Dim Value As Double =s \'要进行四舍五入的小数值 Value = Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits \'四舍五入 Tables("费用核算表").rows(i)("可用款_" & ii & "") =value Else Tables("费用核算表").rows(i)("可用款_" & ii & "") =0 End If \'下面为段代码是为了把应发工资数据补齐,因为计算当月无收入的情况下未发工资额时需要应发工资数据 Dim ld As Double Dim cmdr As New SQLCommand cmdr.C cmdr.CommandText = "Select 应发工资 From {人员管理} Where 姓名 = \'" & Values(ii-1) & "\'" \'直接在人员管理表中取各人的应发工资,即使当月无收入,也可计算出未发工资,便于在下月补发 ld = cmdr.ExecuteScalar() Tables("费用核算表").rows(i)("应发工资_" & ii & "") = ld \'以下代码按照 应发本月工资 补发工资 月可报费用 三个层次逐步推进 \'为了计算应发工资 If Tables("费用核算表").rows(i)("可用款_" & ii & "")>=Tables("费用核算表").rows(i)("应发工资_" & ii & "") Then \'如果 可用款>=应发工资,才能发全额工资 Tables("费用核算表").rows(i)("实发工资_" & ii & "")=Tables("费用核算表").rows(i)("应发工资_" & ii & "") If Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "") >=Tables("费用核算表").rows(i)("上月未发工资_" & ii & "") Then \'如果[可用款] -[应发工资]>=[上月未发工资],优先补发上月未发工资 Tables("费用核算表").rows(i)("补发工资_" & ii & "")=Tables("费用核算表").rows(i)("上月未发工资_" & ii & "") \'发完本月工资后再全额补发前面欠发的工资总额 If Tables("费用核算表").rows(i)("收费金额累计_" & ii & "")<= Tables("费用核算表").rows(i)("任务_" & ii & "") \'没有超出总任务时 \'可用款-应发工资-[补发工资]>当月按进度月可报费用 时 If Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") >=Tables("费用核算表").rows(i)("费用_" & ii & "")*Tables("费用核算表").rows(i)("任务进度_" & ii & "") Then Dim st As Double = _ Tables("费用核算表").rows(i)("费用_" & ii & "")*Tables("费用核算表").rows(i)("任务进度_" & ii & "") \'可用款发完工资后的结余额大于或等于 当月进度报费用情况只能按进度报费用 Tables("费用核算表").rows(i)("月可报费用_" & ii & "")= Math.Round(st,0) Else \'当[可用款]-[应发工资]-[补发工资]<进度费用时,只能按实际余额费用报月可报费用 Dim sn As Double = _ Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") Tables("费用核算表").rows(i)("月可报费用_" & ii & "")= Math.Round(sn,0) End If Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=0 Elseif Tables("费用核算表").rows(i)("收费金额累计_" & ii & "") > Tables("费用核算表").rows(i)("任务_" & ii & "") \'超出总任务时 If Tables("费用核算表").rows(i)("任务_" & ii & "") >= Tables("费用核算表").rows(i-1)("收费金额累计_" & ii & "") Then \'超过任务的转折时点只有一个月,判断标准为:在本月累计收入已超总任务的前提下,总任务如果比上个月收入累计 大的话,那么这个月就是转折时点 Dim st As Double = Tables("费用核算表").rows(i)("收费金额累计_" & ii & "") - Tables("费用核算表").rows(i)("任务_" & ii & "") \'当月超任务部分收入 Dim sm As Double = Tables("费用核算表").rows(i)("任务_" & ii & "") - Tables("费用核算表").rows(i-1)("收费金额累计_" & ii & "") \'当月任务内部分收入 \'等于 (任务-上月收费金额累计)即当月任务内的收入 占任务的比例 * 总费用 Dim re As Double= Tables("费用核算表").rows(i)("费用_" & ii & "")- Tables("费用核算表").rows(i-1)("可报费用累计_" & ii & "") \'用总费用减去上一行的可报费用累计,上一行的可报费用累计不含超费用 \'从后台数据库中业务表中提取一评值 Dim ldt2 As Double Dim cmdt2 As New SQLCommand cmdt2.C cmdt2.CommandText = "Select Sum(一评值) From {业务} Where [二评]=1 And [缴款]=1 And [任务人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) <=" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldt2 = cmdt2.ExecuteScalar() \'从后台数据库中业务表中提取二评值,用于扣任务人的款 Dim ldt3 As Double Dim cmdt3 As New SQLCommand cmdt3.C cmdt3.CommandText = "Select Sum(二评值) From {业务} Where [二评]=1 And [缴款]=1 And [任务人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) <=" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldt3 = cmdt3.ExecuteScalar() \'从后台数据库中业务表中提取二评值,用于扣一评人的款 Dim ldt4 As Double Dim cmdt4 As New SQLCommand cmdt4.C cmdt4.CommandText = "Select Sum(二评值) From {业务} Where [二评]=1 And [缴款]=1 And [一评人] = \'" & Values(ii-1) & "\' And Month([缴款日期]) <=" & Tables("费用核算表").rows(i)("月份") & "And Year([缴款日期]) = " & de.year ldt4 = cmdt4.ExecuteScalar() Dim cpc As Double = ldt2+ldt3+ldt4 Tables("费用核算表").rows(i)("月可报费用_" & ii & "")=Math.Round(re,0)-cpc \'扣除考评款 \'等于 ( 收费金额累计 - 总任务 )*(1-返回比例)*超费用比例 Dim we As Double=st * (1- Tables("费用核算表").rows(i)("返回比例_" & ii & "")) * Tables("费用核算表").rows(i)("超费用比例_" & ii & "") \' 可用 款-应发工资-补发工资-月可报费用>超任务费用 If Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") - Tables("费用核算表").rows(i)("月可报费用_" & ii & "") >= we Then Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=Math.Round(we,0) Else Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") - Tables("费用核算表").rows(i)("月可报费用_" & ii & "") End If Else \'过了超任务时点后的几个月内,超任务为本月累计 - 上月收入累计 Tables("费用核算表").rows(i)("月可报费用_" & ii & "")= 0 Dim sy As Double =Tables("费用核算表").rows(i)("收费金额累计_" & ii & "") -Tables("费用核算表").rows(i-1)("收费金额累计_" & ii & "") Dim qw As Double = sy * (1- Tables("费用核算表").rows(i)("返回比例_" & ii & "")) * Tables("费用核算表").rows(i)("超费用比例_" & ii & "") If Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") - Tables("费用核算表").rows(i)("月可报费用_" & ii & "") >= qw Then Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=Math.Round(qw,0)-Tables("费用核算表").rows(i)("考评款_" & ii & "") Else Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") - Tables("费用核算表").rows(i)("月可报费用_" & ii & "")-Tables("费用核算表").rows(i)("考评款_" & ii & "") End If End If End If Else \'如果[可用款] -[应发工资]<[上月未发工资],按[可用款] -[应发工资]余额来发未发工资 Tables("费用核算表").rows(i)("补发工资_" & ii & "")=Tables("费用核算表").rows(i)("可用款_" & ii & "")-Tables("费用核算表").rows(i)("应发工资_" & ii & "") Tables("费用核算表").rows(i)("月可报费用_" & ii & "")=0 Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=0 [此贴子已经被作者于2010-9-24 10:14:15编辑过]
|
-- 作者:shixia -- 发布时间:2010/9/24 10:12:00 -- End If Else \'如果可用款<应发工资,那么补发工资为0,费用为0 Tables("费用核算表").rows(i)("实发工资_" & ii & "")=Tables("费用核算表").rows(i)("可用款_" & ii & "") Tables("费用核算表").rows(i)("月可报费用_" & ii & "")=0 Tables("费用核算表").rows(i)("补发工资_" & ii & "")=0 Tables("费用核算表").rows(i)("超任务费用_" & ii & "")=0 End If Tables("费用核算表").rows(i)("未发工资_" & ii & "")=Tables("费用核算表").rows(i)("应发工资_" & ii & "")+ Tables("费用核算表").rows(i)("上月未发工资_" & ii & "")-Tables("费用核算表").rows(i)("实发工资_" & ii & "")-Tables("费用核算表").rows(i)("补发工资_" & ii & "") \'如果 纯收入 -月上缴+上月余额 <= 月扣款 If Tables("费用核算表").rows(i)("收费金额_" & ii & "")*(1-Tables("费用核算表").rows(i)("返回比例_" & ii & ""))- Tables("费用核算表").Rows(i)("月上缴_" & ii & "")+Tables("费用核算表").rows(i)("上月余额_" & ii & "")<=Tables("费用核算表").Rows(i)("月扣款_" & ii & "") Then \'为了计算每月扣款, Dim ss As Double \'计算纯收入-月上缴 +上月余额 值,余额值等于 负值 ss=Tables("费用核算表").rows(i)("收费金额_" & ii & "")*(1-Tables("费用核算表").rows(i)("返回比例_" & ii & ""))- Tables("费用核算表").Rows(i)("月上缴_" & ii & "")+Tables("费用核算表").rows(i)("上月余额_" & ii & "") Dim Digits8 As Integer = 0 \'要保留的小数位数,根据需要修改 Dim Value8 As Double =ss \'要进行四舍五入的小数值 Value8 = Math.Floor(Value8 * 10 ^ Digits8 + 0.5) / 10 ^ Digits8 \'四舍五入 Tables("费用核算表").rows(i)("余额_" & ii & "") =value8-Tables("费用核算表").rows(i)("月扣款_" & ii & "") Else \'如果 纯收入 -月上缴+上月余额 > 月扣款 Tables("费用核算表").rows(i)("余额_" & ii & "")= Tables("费用核算表").rows(i)("可用款_" & ii & "")- _ Tables("费用核算表").rows(i)("实发工资_" & ii & "")- _ Tables("费用核算表").rows(i)("补发工资_" & ii & "")- _ Tables("费用核算表").rows(i)("月可报费用_" & ii & "")- _ Tables("费用核算表").rows(i)("超任务费用_" & ii & "") End If If i=0 Then \'第一行上月余额为0 Tables("费用核算表").rows(i)("可报费用累计_" & ii & "")= Tables("费用核算表").rows(i)("月可报费用_" & ii & "") + Tables("费用核算表").rows(i)("超任务费用_" & ii & "") Else Tables("费用核算表").rows(i)("可报费用累计_" & ii & "")= Tables("费用核算表").rows(i-1)("可报费用累计_" & ii & "")+ Tables("费用核算表").rows(i)("月可报费用_" & ii & "")+ Tables("费用核算表").rows(i)("超任务费用_" & ii & "") End If Tables("费用核算表").rows(i)("未报费用累计_" & ii & "")= Tables("费用核算表").rows(i)("可报费用累计_" & ii & "")- Tables("费用核算表").rows(i)("已报费用累计_" & ii & "") \'隐藏列 Tables("费用核算表").Cols("任务_" & ii & "").Visible = False Tables("费用核算表").Cols("返回比例_" & ii & "").Visible = False Tables("费用核算表").Cols("上缴_" & ii & "").Visible = False Tables("费用核算表").Cols("应发工资_" & ii & "").Visible = False Tables("费用核算表").Cols("上月未发工资_" & ii & "").Visible = False Tables("费用核算表").Cols("费用_" & ii & "").Visible = False Tables("费用核算表").Cols("超费用比例_" & ii & "").Visible = False Tables("费用核算表").Cols("月上缴累计_" & ii & "").Visible = False Tables("费用核算表").Cols("收费金额累计_" & ii & "").Visible = False Tables("费用核算表").Cols("可报费用累计_" & ii & "").Visible = False Tables("费用核算表").Cols("已报费用累计_" & ii & "").Visible = False Next Next MainTable=Tables("费用核算表") |
-- 作者:mr725 -- 发布时间:2010/9/24 12:38:00 -- 晕啊~ 建议把所有的类似: Dim ldmt As Double
这样的东东都放到,for 。。。 next 的前面去,不要放在其中! 且相类似的(条件相同的)合并一起到一个.CommandText = "Select.....From 里面去,与 i 或 ii 条件有关的都不要,保留一个时间段的条件, 计算时再添加条件来计算。。。。 [此贴子已经被作者于2010-9-24 13:42:05编辑过]
|