Office中国论坛/Access中国论坛

标题: 关于分页合计的问题(已解决如果表内值为空,生产错误问题,请看15楼) [打印本页]

作者: ly_19811105    时间: 2007-8-7 13:09
标题: 关于分页合计的问题(已解决如果表内值为空,生产错误问题,请看15楼)
Dim mysum1 As Double
Dim mysum2 As Double
Dim xx
Private Sub Report_Open(Cancel As Integer)
End Sub
Private Sub 页面页脚_Format(Cancel As Integer, FormatCount As Integer)
Text21.Value = "本页共计:   " & mysum2 & "cone"
Text23.Value = "本页共计:  " & mysum1 & "个ITEM"
mysum2 = 0
mysum1 = 0
End Sub
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
End Sub
Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)
If IsNull(执货数量) Then
mysum1 = mysum1 + 1
mysum2 = mysum2 + 执货数量.Value
Else
mysum2 = 0
mysum1 = 0
End If
End Sub

如题,如何判断当前表的字段为空???这样写如果表内为数据就能正常工作,但表内数据为空,产生错误,提示mysum2 = mysum2 + 执货数量.Value表达式无数值,错误退出.请高手帮忙修改一下,多谢!!!!!

多谢版主的帮忙。

[ 本帖最后由 ly_19811105 于 2007-8-11 20:47 编辑 ]
作者: ly_19811105    时间: 2007-8-7 14:19
不要沉啊,还没有人解决呢???
作者: 一点通    时间: 2007-8-7 14:30
更改为iserror()函数试下
作者: ly_19811105    时间: 2007-8-7 14:50
Dim mysum1 As Double
Dim mysum2 As Double
Dim xx
Private Sub Report_Open(Cancel As Integer)
End Sub
Private Sub 页面页脚_Format(Cancel As Integer, FormatCount As Integer)
Text21.Value = "本页共计:   " & mysum2 & "cone"
Text23.Value = "本页共计:  " & mysum1 & "个ITEM"
mysum2 = 0
mysum1 = 0
End Sub
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
End Sub
Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)
If IsNull(执货数量) Then
mysum1 = mysum1 + 1
if iserror(mysum2 = mysum2 + 执货数量.Value)=ture then
mysum2=0
end if
Else
mysum2 = 0
mysum1 = 0
End If
End Sub

还是提示表达式无数值,有没有其它方法啊.
作者: ly_19811105    时间: 2007-8-7 15:12
不要沉啊,还没有人解决呢???
作者: ly_19811105    时间: 2007-8-7 15:46
不要沉啊,还没有人解决呢???
直到解决为止
作者: ly_19811105    时间: 2007-8-7 16:18
顶到最上面去,高手帮手解决啊
作者: hi-wzj    时间: 2007-8-7 16:32
If IsNull(执货数量) Then
    mysum1 = mysum1 + 1
    mysum2 = mysum2 + 执货数量.Value
Else
    mysum2 = 0
    mysum1 = 0
End If
既然您已经判断“执货数量”为null了,为什么还拿它(执货数量.Value)来计算呢?矛盾
作者: t小宝    时间: 2007-8-7 16:33
试试:

If IsNull(执货数量) Then
mysum1 = mysum1 + 1
mysum2 = mysum2 + Nz(执货数量.Value,0)
Else
mysum2 = 0
mysum1 = 0
End If
作者: ly_19811105    时间: 2007-8-9 16:54
以上方法都不行啊,还是提示是表达式没有数值,哪位高手再帮手搞搞啊。主要是如何判断当前报表所使用的表是空表就行了,论坛上的所有页合计我都试了一遍,只要是表为空,一律出现表达式没有数值。
作者: ly_19811105    时间: 2007-8-9 17:19
不要沉,顶上去,顶到有人解决。菜鸟的办法
作者: ly_19811105    时间: 2007-8-9 22:06
顶上去,我就不信没有人会
作者: ly_19811105    时间: 2007-8-10 07:23
回去,不要沉,还没解决
作者: hi-wzj    时间: 2007-8-10 10:42
我不是已经指出您的逻辑错误之处了吗?

如果报表无数据,您需要在报表的“无数据”事件中:Private Sub Report_NoData(Cancel As Integer)设置代码,而不是在页合计中设置。
作者: ly_19811105    时间: 2007-8-11 14:12
多谢版主,因为是菜鸟,对Access的VBA不了解,所以一直都没有办法做到,现在已经解决了。多谢!!!
Option Compare Database
Dim mysum1 As Double
Dim mysum2 As Double
Dim x As Boolean

Private Sub Report_NoData(Cancel As Integer)
x = False
End Sub

Private Sub Report_Open(Cancel As Integer)

End Sub

Private Sub 页面页脚_Format(Cancel As Integer, FormatCount As Integer)

End Sub

Private Sub 页面页脚_Print(Cancel As Integer, PrintCount As Integer)
Text23.Value = "本页共计: " & mysum1 & " CONE"
Text24.Value = "本页共计: " & mysum2 & " 个ITEM"
mysum1 = 0
mysum2 = 0
End Sub

Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)

End Sub

Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)
If x = True Then
mysum1 = mysum1 + 执货数量.Value
mysum2 = mysum2 + 1
Else
mysum1 = 0
mysum2 = 0
End If
End Sub
把我的代码贴出来让你帮忙看看有没有问题,没有问题也能让像我一样的菜鸟共享一下




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3