以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]如何判断日期是否合理  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=6596)

--  作者:glrwb
--  发布时间:2007/2/15 20:36:00
--  [求助]如何判断日期是否合理
经常要判断填写的日期是否合理,比如长度是否符合要求(如2007-02-07),是否有不符合逻辑的地方,如不能出现超过12月份,和每个月的天数要符合实际。请问高手,有这样的判断语句吗?
--  作者:xj22710
--  发布时间:2007/2/15 21:41:00
--  
不太好判断
--  作者:ylm
--  发布时间:2007/2/15 22:36:00
--  
这样试试:
if(Eval(DAY([日期]))= True , True ,MsgBox(" 输入有误!",0))
--  作者:xj22710
--  发布时间:2007/2/16 0:29:00
--  
不懂大师的刷新公式并没有达到楼主的要求,输入2007-02-29或者2007-12-32,甚至输入2007-13-01同样不会提示错误
--  作者:smileboy
--  发布时间:2007/2/16 9:26:00
--  
试试用设置掩码和isdate判断
--  作者:glrwb
--  发布时间:2007/2/16 10:43:00
--  
太可惜了,看来易表还有问题啊,反正我觉得易表的程序太难写,一点也不自然,所有的程序都写在一行,只有大师才能搞懂。
--  作者:smileboy
--  发布时间:2007/2/16 10:49:00
--  
下面引用由glrwb2007/02/16 10:43am 发表的内容:
太可惜了,看来易表还有问题啊,反正我觉得易表的程序太难写,一点也不自然,所有的程序都写在一行,只有大师才能搞懂。

你也可以分段写,然后组在一起


--  作者:ylm
--  发布时间:2007/2/16 18:12:00
--  
下面引用由xj227102007/02/16 00:29am 发表的内容:
不懂大师的刷新公式并没有达到楼主的要求,输入2007-02-29或者2007-12-32,甚至输入2007-13-01同样不会提示错误
呵呵,为何用要刷新公式呢?用操作公式、验证公式或自定义按扭试试嘛。
egd文件下载
--  作者:glrwb
--  发布时间:2007/2/16 20:27:00
--  
历害,历害,能否详细说明if(Eval(DAY([日期]))= True, True ,MsgBox(" 输入有误!",0))编程技巧,因为EVAL函数好没有这种用法啊,讲的清楚一点,大家都好学习学习啊!谢谢!
--  作者:ylm
--  发布时间:2007/2/16 21:25:00
--  
可以说Eval函数是易表中最灵活多变的函数之一了。越是灵活多变当然也是越难理解了。由于太灵活多变,以至于帮助文件上只有简单几行:

Eval可以对指定的表达式求值,例如Eval(1+1)=2 ,而Eval("[数量] * [单价]")可以求出金额。
熟练掌握Eval函数,可以大幅度提高系统设计的灵活性,因为Eval函数可以在运行过程中动态生成表达式,然后再求得这个表达式的值。
Eval也可以动态执行一些命令,加入你要用一个变量保存用户选择的表名,然后打开这个表,公式为:
Eval("OpenGrid([%A%])")

其实Eval在本公式里,只是对DAY([日期])表达式执行一下,如公式能正常执行,那么日期应是正确的,反之,就是输入错误了。