最近在做机房收费系统的时候,遇到一个窗体:日结账单。
在这里需要把每天的充值金额,消费金额以及退卡金额全部求出。我是在窗体加载的同时计算这些数据的。但是如何计算这些问题。我是这么写代码的:
strTxtsql = "select sum(addmoney) from recharge_info where date= '" & a1 & "'"
Set mrca = ExecuteSQL(strTxtsql, strMsgtext)
b = mrca.Fields(0)
mrca.Close
本来认为很简单的事情,在运行的时候就是一直出错,显示“无效使用Null值”。
我把VB中的代码复制到SQL中去查询,查询显示为NULL,说明当日没有充值金额,而NULL值传递给b后和其他的数相加就会出错。这时我想到了IsNull函数,然后代码变成下面:
strTxtsql = "select sum(addmoney) from recharge_info where date= '" & a1 & "'"
Set mrca = ExecuteSQL(strTxtsql, strMsgtext)
If IsNull(mrca.Fields(0)) Then '如果显示的数字为Null值
b = 0
Else
b = mrca.Fields(0)
End If
mrca.Close
这样
让Null值=0,问题就很容易解决了。