vb 实时错误94 无效使用null 请高手帮忙看看为什么 急~~

我做的是输入一个时间然后将数据库中这一时间的某一列中的数值相加算出最后的值,输入其他时间都可以,但就是当时间为2009是总是跳出无效使用null的错误。就算我将acces... 我做的是输入一个时间然后将数据库中这一时间的某一列中的数值相加算出最后的值,输入其他时间都可以,但就是当时间为2009是总是跳出无效使用null的错误。就算我将access中2009的记录删除了还是会跳出来,调试时指向 sum = sum + h这一句 想问下究竟是为什么,急~~~
Public Function count1()
Dim sum As Double
sum = 0
Do While Not Adodc1.Recordset.EOF
a = Adodc1.Recordset.Fields("上次中修时间")
b = Val(Format(a, "yyyy"))
c = Adodc1.Recordset.Fields("中修费用")
d = Int(c)
If Text1.Text = b Then
sum = sum + d
End If
Adodc1.Recordset.MoveNext
Loop
Text3.Text = sum

End Function
Public Function count2()
Dim sum As Double
sum = 0
Do While Not Adodc1.Recordset.EOF
e = Adodc1.Recordset.Fields("上次大修时间")
f = Val(Format(e, "yyyy"))
g = Adodc1.Recordset.Fields("大修费用")
h = Int(g)
If Text1.Text = f Then
sum = sum + h
Else
sum = sum + 0
End If
Adodc1.Recordset.MoveNext
Loop
Text4.Text = sum
End Function
Private Sub Command1_Click()
If Combo2.Text = Combo2.List(1) Then
If Text1.Text = "" Then
MsgBox "请输入年份"
Else
Call count1
Adodc1.Recordset.MoveFirst
Call count2
Adodc1.Recordset.MoveFirst
End If
End If
展开
 我来答
fengqiwuyong
2011-03-22 · 超过23用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:59.7万
展开全部
应该是数据类型不对,开始的sum是double数据类型,后来加的d是integer,所以会出错,不如都转换成integer好了,应该不会再出错了吧。
chinaboyzyq
推荐于2016-08-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3170万
展开全部
g = Adodc1.Recordset.Fields("大修费用")

h = IIf(IsNull(g), 0, Int(g)) '数据库里有NULL(空)字段,这样处理一下。

If Text1.Text = f Then
Sum = Sum + h
Else
Sum = Sum + 0
End If
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咕噜优米an
2011-03-22 · 超过14用户采纳过TA的回答
知道答主
回答量:161
采纳率:0%
帮助的人:62.6万
展开全部
应该是你的sql语句查询结果里有<null>的项目
修改一下,用isnull(列名,0)或isnull(列名,‘’)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式