Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共18 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:写代码时没问题,运行也买有问题,从新运行时出问题,请专家诊断。

1楼
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 [业务内容] = '开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)

 

请专家帮助解决。

 

请专家诊断。

2楼
程兴刚 发表于:2011/6/29 9:42:00

Nothing全部改为0

3楼
程兴刚 发表于:2011/6/29 9:47:00

另外,看看您的编号列是不是数值型:

如果是, "[编号] = '"& bh &"' And 改为 "[编号] = " & bh & "And

如果不是: Dim bh As Integer改为Dim bh As String

晕,昨天忘记写连接符号了,更正!

[此贴子已经被作者于2011-6-29 18:14:52编辑过]
4楼
狐狸爸爸 发表于:2011/6/29 11:02:00

首先将代码中的CurrentTable全部改为e.Table

 

 

然后在开始位置增加一行代码:

 

 

If e.Table.Current Is Nothing Then

    return

End if

5楼
zxyds2000 发表于:2011/6/29 11:04:00

编号是整性数据,改为: [编号] = bh  And  后系统不认。

Nothing 改为 0 可能不行,Nothing 是没有数据,可能还没有填写, 0  则会认为此项数据为0 ,统计时有问题。

6楼
程兴刚 发表于:2011/6/29 11:51:00

呵呵,我都没注意e参数,晕!

7楼
zxyds2000 发表于:2011/6/29 11:59:00

狐狸爸爸:

    问题没解决,按照你的办法改过后,在添加代码时可以很好的执行,退出后重新进入时, 程序会中止启动,直接退出了。

    按ctrl键可以进入程序,但是一切换表视图就出错。

8楼
狐狸爸爸 发表于:2011/6/29 12:20:00

将设置好代码的表传上来,告诉我怎样操作出错。

 

9楼
zxyds2000 发表于:2011/6/29 12:42:00

 狐狸爸爸:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:财务数据录入试验_0629.zip

密码在你的收件箱。

10楼
czy 发表于:2011/6/29 13:29:00
如果编号是整数型数据,bh前后就不应该有引号。
共18 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 3 queries.