以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 写代码时没问题,运行也买有问题,从新运行时出问题,请专家诊断。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10903) |
||||
-- 作者:zxyds2000 -- 发布时间:2011/6/29 9:31:00 -- 写代码时没问题,运行也买有问题,从新运行时出问题,请专家诊断。 我在表“经营11年管控表”的BeforeSelChange事件添加了如下代码:
Dim Sum0 As Decimal Dim Sum1 As Decimal Dim Sum2 As Decimal Dim Sum3 As Decimal Dim Sum4 As Decimal Dim Sum5 As Decimal Dim Sum6 As Decimal Dim bh As Integer bh = CurrentTable.Current("编号") Sum0 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'开收据\'") If Sum0<>0 Then CurrentTable.Current("开收据额") = Sum0 Else CurrentTable.Current("开收据额") = Nothing End If Sum1 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'开发票\'") If Sum1<>0 Then CurrentTable.Current("已开票额") = Sum1 Else CurrentTable.Current("已开票额") = Nothing End If Sum2 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'收预付款\'") If Sum2<>0 Then CurrentTable.Current("预付款") = Sum2 Else CurrentTable.Current("预付款") = Nothing End If Sum3 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'收二期款\'") If Sum3<>0 Then CurrentTable.Current("二期款") = Sum3 Else CurrentTable.Current("二期款") = Nothing End If Sum4 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'收结算款\'") Sum5 = Tables("财务数据录入").Compute("Sum(金额)", "[编号] = \'"& bh &"\' And [业务内容] = \'收保留款\'") Sum6 = Sum2 + Sum3 + Sum4 + Sum5 If Sum6<>0 Then CurrentTable.Current("累计收款") = Sum6 Else CurrentTable.Current("累计收款") = Nothing End If
写代码时没问题,运行也没有问题,从新运行时出问题,错误提示如下:
错误代码位置:经营11年管控表,BeforeSelChange
System.NullReferenceException:Object reference not set to an instance of an object.at UserCode.BeforeSelChange(CellRangeChangeEventArgs e)
请专家帮助解决。
请专家诊断。 |
||||
-- 作者:程兴刚 -- 发布时间:2011/6/29 9:42:00 -- Nothing全部改为0 |
||||
-- 作者:程兴刚 -- 发布时间:2011/6/29 9:47:00 -- 另外,看看您的编号列是不是数值型: 如果是, "[编号] = \'"& bh &"\' And 改为 "[编号] = " & bh & "And 如果不是: Dim bh As Integer改为Dim bh As String 晕,昨天忘记写连接符号了,更正! [此贴子已经被作者于2011-6-29 18:14:52编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/6/29 11:02:00 -- 首先将代码中的CurrentTable全部改为e.Table
然后在开始位置增加一行代码:
If e.Table.Current Is Nothing Then return End if |
||||
-- 作者:zxyds2000 -- 发布时间:2011/6/29 11:04:00 -- 编号是整性数据,改为: [编号] = bh And 后系统不认。 Nothing 改为 0 可能不行,Nothing 是没有数据,可能还没有填写, 0 则会认为此项数据为0 ,统计时有问题。 |
||||
-- 作者:程兴刚 -- 发布时间:2011/6/29 11:51:00 -- 呵呵,我都没注意e参数,晕! |
||||
-- 作者:zxyds2000 -- 发布时间:2011/6/29 11:59:00 -- 狐狸爸爸: 问题没解决,按照你的办法改过后,在添加代码时可以很好的执行,退出后重新进入时, 程序会中止启动,直接退出了。 按ctrl键可以进入程序,但是一切换表视图就出错。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/6/29 12:20:00 -- 将设置好代码的表传上来,告诉我怎样操作出错。
|
||||
-- 作者:zxyds2000 -- 发布时间:2011/6/29 12:42:00 -- 狐狸爸爸:
密码在你的收件箱。 |
||||
-- 作者:czy -- 发布时间:2011/6/29 13:29:00 -- 如果编号是整数型数据,bh前后就不应该有引号。 |