ACCESS中为什么设置了字段为非空,还是会出现空值

ACCESS中为什么设置了字段为非空,还是会出现空值,第1张

空值和空格是两个不同的概念
空值是指null
你确定该列为null吗?
写一个SQL语句试试就知道了,假设列名叫Name
select from 表名 where Name is null
如果查询出来有结果,就说明有空值

ACCESS 里面, 应该是使用 IIF 函数
select
IIF ( afield1 IS NULL, 0, afield1) AS field1
bfield2
from table1 a left join table2 bon afield3=bfield4
注: ACCESS 里面好像是没有 CASE WHEN 的, IIF 主要用来实现 CASE WHEN 的功能。
这里的
IIF ( afield1 IS NULL, 0, afield1)
等价于
CASE WHEN afield1 IS NULL THEN 0 ELSE afield1 END
也就是 假如afield1字段为空的话, 那么显示 0 , 否则显示 afield1

<table border="3" bordercolor="778899">
<tr bgcolor=gainsboro align=middle>
<%for i=0 to rs1fieldscount-1%>
<%responsewrite ("<td><font size=2><b>"+rs1(i)name+"</b></font></td>")%>
<%next%>
</tr>
<tr bgcolor=white align=middle>
<%for i=0 to rs1fieldscount-1
'判断字段值是否为空
if isnull(rs1(i)) then
rs1(i)=""
end if
'以上不行的话改成下面的试试
'if rs1(i)="" then
'rs1(i)="信息为空"
'end if
responsewrite ("<td><font size=2><b>"+rs1(i)+"</b></font></td>")
next%>
</tr>
</table>

加个判断看看
For j = 0 To rstRecordCount - 1
if isnull(rstFields(1)) or rstFields(1)) ="" then
bgc="#000000"
else
bgc=rstFields(1)
end if
Label2(j)backcolo= bgc
~~~~~~~~~~~~~~~~~~~你这里的backcolo是不是拼错了
rstMoveNext
你把查询加个排序,然后在数据库中查看时也加个排序,再看看是哪一行出错
你把你错误的详细信息贴出来看看

不太清楚你所说的情况,你的总计是怎么得来的啊?问题有些糊涂
你是说在汇总表的 某一天的收支项目表中显示情况吗?
直接使用 Nz([字段名]) 就是把 空值变成0了!你在做查询的时候 用这个表达式 就可以了,另外做运算的时候,也是要用到这个函数的,因为你的数据里有空值的话 有些运算会产生错误,所以在你的运算公式中 最好每个地段都加上这个函数 比如你的统计会用到加减法
当日结余:Nz([收入]) - Nz([支出])
……………………
查询中应该是 在一个 空白字段区域 右键 生成器 打开一个公式生成器界面 在里边插入或者是输入 函数、运算 公式等就可一了,确定后 自动在给这个 计算字段 命名为类似 表达式1 这样字的名字,你自己修改成好区分的名字就行了,但是不能与已有的字段名字重名……

可以使用nz函数或iif函数嵌套isnull函数将控制转换成0。
例如:
select nz(销售数量,0) from 销售记录;
或者
select iif(isnull(销售数量),0,销售数量)
from 销售记录;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10458054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存