读书人

送分100分:ISNULL的使用有关问题

发布时间: 2012-01-20 18:53:53 作者: rapoo

送分100分:ISNULL的使用问题
在一个ACCESS的表中,有一个字段:房间号,
当房间号为空时,
DIM A AS BOOLEAN
A = IsNull(RstYh.Fields("房间号"))

运行结果A=0 即FALSE

应该是A=1 为什么结果却是A=0呢。



[解决办法]
空和IsNull不一样的。IsNull的意思是什么都没有,连空格都没有! 有空格的话,就不是IsNull就为False
[解决办法]
也可以作下处理:(不管是不是空,后面都加个空字符,这样就好判断了)
dim A as string
A = RstYh.Fields("房间号") & vbnullstring
if A="" then

endif
[解决办法]
IsNull 是判断返回是否是null值 空值并不等于null值

a=null isnull(a) 就会返回true
[解决办法]
要注意空字符串和 NULL 是不一样的,虽然 Access 的表格浏览中看起来没区别。
[解决办法]
确定一下字段是否设置了默认值,如果没有设置,则再确定一下必填字段是否为否。如果字段值确实为NULL,那么A应该为True,出现这种情况,不是IsNULL的问题,而是代码与数据库不一致出现的问题。
[解决办法]
我给楼主一个建议,是分析这种数据类型问题思路的,你把RstYh.Fields("房间号")) 赋值给一个变量,再设个断点在"监视窗口"中看下它是啥值啦:)
[解决办法]

探讨
3)零长度字符串与NULL到底有什么区别。

读书人网 >VB

热点推荐