Office中国论坛/Access中国论坛

标题: 求自动提醒结束日期不正确代码 [打印本页]

作者: 明镜    时间: 2009-3-12 15:08
标题: 求自动提醒结束日期不正确代码
求自动提醒结束日期不正确代码
窗体1中有几个控件, 年代表整年数,月代表整月数(是从开始日期起计算的年月数,如开始日期是2008年1月1日,那么1年1月的结束日期应当为2009年1月31日),系统可以根据年、月和开始日期自动计算出结束日期,但计算出的结束日期并不直接体现出来,而是和人工录入的结束日期相比对,如果结束日期录入对的,就没有什么,但如果结束日期错误,那就会出现提示。
这个代码就是要达到这个效果.
这段vba如何写,请教了。
作者: todaynew    时间: 2009-3-12 16:14
查一下DateSerial()函数的用法就解决了。
作者: 明镜    时间: 2009-3-12 16:47
是否能讲解得具体一些,最好提供一下例子.先谢了.
作者: todaynew    时间: 2009-3-12 19:24
本帖最后由 todaynew 于 2009-3-12 19:35 编辑

没有看明白你实例的意思。我理解是不是要一个月末日期的问题?如果是这样的话,在表中【年】、【月】、【开始日期】、【结束日期】四个字段全部都是多余的。只需要一个录入的日期就可以了。这样的话,只是需要计算出该日期所属的月末日期是多少,当该日期大于该月月末日期时提示错误即可。

给你一个计算该月月末日期的实例,你看看是否有用。

[attach]36590[/attach]

F1中可以查到DateSerial的用法,摘录重要的部分如下:
以下示例中使用了数值表达式代替绝对日期。这里,DateSerial 函数返回 1990 年 8 月 1 日的 十 年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 之前的日期;换句话说,就是 1980 年 5 月 31 日。
DateSerial(1990 - 10, 8 - 2, 1 - 1)
作者: 明镜    时间: 2009-3-12 19:58
这个数据库是想验算结束日期是否正确,而不是只要一个月末日期的问题.
从开始日期起经过几年几个月就是结束日期,这个结束日期其实数据可以自行计算的,但为了验算人工计算是否正确,所以把系统计算的结束日期不显示出来.通过数据库计算的日期和人工计算的结束日期进行比较,如果人工计算的结束日期错误的,数据库就进行提醒.
以上就是想要达到的效果.
"todaynew"提供的例子很不错,收藏了,但不符合想要的思路.能否再想想办法.谢了.
作者: 明镜    时间: 2009-3-13 18:26
看起来这个问题解决起来有点难了.
作者: kangking    时间: 2009-3-13 18:47
这个数据库是想验算结束日期是否正确,而不是只要一个月末日期的问题.
从开始日期起经过几年几个月就是结束日期,这个结束日期其实数据可以自行计算的,但为了验算人工计算是否正确,所以把系统计算的结束日期不显示出来 ...
明镜 发表于 2009-3-12 19:58


如你所说,直接计算出来不是很好吗?为何还要人工输入?
作者: todaynew    时间: 2009-3-13 19:16
本帖最后由 todaynew 于 2009-3-13 19:19 编辑
这个数据库是想验算结束日期是否正确,而不是只要一个月末日期的问题.
从开始日期起经过几年几个月就是结束日期,这个结束日期其实数据可以自行计算的,但为了验算人工计算是否正确,所以把系统计算的结束日期不显示出来 ...
明镜 发表于 2009-3-12 19:58

我觉得是个很简单的问题,你看是否是这样:
1、输入【开始日期】,输入结束日期与开始日期间隔的【年】、【月】、【日】;
2、计算结束日期:
mydate=DateSerial(format(me.开始日期,“yyyy”) - me.年, format(me.开始日期,“mm”) - me.月, format(me.开始日期,“dd”) - me.日)
if not me.结束日期=mydate then
   msgbox “结束日期输入错误!”
end if

不过这样做似乎确无必要,正如楼上的同志所论,既然都计算出来了,干嘛还要录入呢?呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3