Foxtable(狐表)用户栏目专家坐堂 → 关于空值


  共有16047人关注过本帖树形打印复制链接

主题:关于空值

帅哥哟,离线,有人找我吗?
狐哥
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
关于空值  发帖心情 Post By:2009/7/11 14:49:00 [只看该作者]

这是因为即使某列的值为空,其返回的值也不会是Nothing
在某列内容为空的时候,会根据不同的列类型,返回不同的值,规则如下:

字符列:""
数值列:0
逻辑列:False
日期列:#0001-01-01 0:00:00#

能否说明,在何种类型的列时用哪个最好一点呢.举个权限列子:

我在PrepareEdit中设了如下代码:
If e.Row("收付编号") <> "" Then '收付编号列为字符形
    e.Cancel = True
End If

此代码没有问题,但如设为如下:
If e.Row.isnull("收付编号") = false Then
    e.Cancel = True
End If
此代码则所有行都编辑不了,即使 收付编号为空值.也没有反映,我再试 isnot nothing ,也是一样没反映.

也就是说:null 及Nothing 对于字符列返回的值不是""

哪:
对于字符列,只能用""来判断
对于数值列和日期列,只能用ISNULL来判断(因数值列的空值返回的是0)
nothing 只能应用于所返回的显示结果.XX列 = nothing,而不能进行判断.

不知是否对,请老师再试试看对不对.

[此贴子已经被作者于2009-7-11 14:52:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/11 15:02:00 [只看该作者]

If e.Row.isnull("收付编号") = false Then
    e.Cancel = True
End If
此代码则所有行都编辑不了,即使 收付编号为空值.也没有反映,我再试 isnot nothing ,也是一样没反映.


这个代码应该没问题,能正常工作。
你发个简单的文件看看。


 回到顶部
帅哥哟,离线,有人找我吗?
狐哥
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2009/7/11 15:42:00 [只看该作者]

哈,这个没有文件啦,随便在一个表中录入就OK了

If e.Row.isnull("第一列") = false Then
    e.Cancel = True
End If

刚说错,这个OK,是我在另外又设了锁定公式.
[此贴子已经被作者于2009-7-11 15:46:58编辑过]

 回到顶部