Foxtable(狐表)用户栏目专家坐堂 → [求助]日期录入控件的空值判断问题?


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

主题:[求助]日期录入控件的空值判断问题?

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


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
购买狐表  发帖心情 Post By:2008/11/28 8:27:00 [只看该作者]

   窗口中有二个日期录入控件("Datetimepicker1") 和("Datetimepicker2") ,用下列代码判断没出现错误提示。但当这二个控件之一或都为空值时,并没出现提示,程序继续向下运行,是什么原因?请求帮助了,谢谢!

if e.Form.Controls("Datetimepicker1") Is Nothing or e.Form.Controls("Datetimepicker2") Is Nothing Then
    MessageBox.Show("请 您 正 确 选 择 汇 总 日 期 !","提示")
   return
end if

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/28 8:57:00 [只看该作者]

if e.Form.Controls("Datetimepicker1").value Is Nothing or e.Form.Controls("Datetimepicker2").value Is Nothing Then
end if

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2008/11/28 9:20:00 [只看该作者]

好像有问题,无论是否输入日期,都提示!
if e.Form.Controls("Datetimepicker1").value Is Nothing  Then
       MessageBox.Show("請輸入日期!","提示")
end if

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


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
  发帖心情 Post By:2008/11/28 9:25:00 [只看该作者]

Dim A As New Date
   谢谢回复!

Dim b As New Date
A =e.Form.Controls("Datetimepicker1").value
B =e.Form.Controls("Datetimepicker2").value 
if e.Form.Controls("Datetimepicker1").value Is Nothing  or e.Form.Controls("Datetimepicker2").value Is Nothing  then
MessageBox.Show("请 您 正 确 选 择 汇 总 日 期 !","提示")
return
end if 

   上述为正确代码,若将第四行判断句换成:if A is nothing or B is nothing then

   编译时就会出现错误,不知何故?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/28 9:39:00 [只看该作者]

以下是引用ybil在2008-11-28 9:20:00的发言:
好像有问题,无论是否输入日期,都提示!
if e.Form.Controls("Datetimepicker1").value Is Nothing  Then
       MessageBox.Show("請輸入日期!","提示")
end if


需要注意一个细节,你在某个框中输入的内容,必须离开这个框,才会写入到Value属性!


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/28 9:40:00 [只看该作者]

以下是引用t_fs在2008-11-28 9:25:00的发言:
Dim A As New Date
   谢谢回复!

Dim b As New Date
A =e.Form.Controls("Datetimepicker1").value
B =e.Form.Controls("Datetimepicker2").value 
if e.Form.Controls("Datetimepicker1").value Is Nothing  or e.Form.Controls("Datetimepicker2").value Is Nothing  then
MessageBox.Show("请 您 正 确 选 择 汇 总 日 期 !","提示")
return
end if 

   上述为正确代码,若将第四行判断句换成:if A is nothing or B is nothing then

   编译时就会出现错误,不知何故?


A和B是日期型,不可能是Nothing.


Nothing

变量可能不包括任何内容,也就是空值。
在Visual Basic中,空值用Nothing表示。
有两个特殊的运算符,用于判断变量的值是不是Nothing,分别是Is和IsNot,前者的意思是“是”,后者的意思是“不是”。
语法为:

变量名 Is Nothing

如果变量值为Nothing,则返回True,否则返回False。

变量名 IsNot Nothing

如果变量值不为Nothing,则返回True,否则返回False。

Dim str1 As String
Dim
Str2 AS String = "FoxTable"
If
str1 Is Nothing Then
    Output.Show(
"Str1是空值!")
End
If
If
str2 IsNot Nothing Then
    Output.Show(
"Str2不是空值!")
End
If

需要注意的是,数值、日期、逻辑三种类型的变量,是永远不会为空的,其它任何类型的变量,如果没有明确赋值,其初始值都是Nothing

 

 


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


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
  发帖心情 Post By:2008/11/28 10:14:00 [只看该作者]

数值、日期、逻辑三种类型的变量,是永远不会为空的


  关键在这句话上了。谢谢了!

 回到顶部