Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
我在表“经营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 [业务内容] = '开fa piao'")
If Sum1<>0 Then
CurrentTable.Current("已开piao额") = Sum1
Else
CurrentTable.Current("已开piao额") = 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)
请专家帮助解决。
请专家诊断。
Nothing全部改为0
另外,看看您的编号列是不是数值型:
如果是, "[编号] = '"& bh &"' And 改为 "[编号] = " & bh & "And
如果不是: Dim bh As Integer改为Dim bh As String
晕,昨天忘记写连接符号了,更正!
首先将代码中的CurrentTable全部改为e.Table
然后在开始位置增加一行代码:
If e.Table.Current Is Nothing Then
return
End if
编号是整性数据,改为: [编号] = bh And 后系统不认。
Nothing 改为 0 可能不行,Nothing 是没有数据,可能还没有填写, 0 则会认为此项数据为0 ,统计时有问题。
呵呵,我都没注意e参数,晕!
狐狸爸爸:
问题没解决,按照你的办法改过后,在添加代码时可以很好的执行,退出后重新进入时, 程序会中止启动,直接退出了。
按ctrl键可以进入程序,但是一切换表视图就出错。
将设置好代码的表传上来,告诉我怎样操作出错。