Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:关于空值

1楼
狐哥 发表于: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编辑过]
2楼
lxl 发表于:2009/7/11 15:02:00
If e.Row.isnull("收付编号") = false Then
    e.Cancel = True
End If
此代码则所有行都编辑不了,即使 收付编号为空值.也没有反映,我再试 isnot nothing ,也是一样没反映.


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

3楼
狐哥 发表于: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编辑过]
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02930 s, 2 queries.