设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1456|回复: 6
打印 上一主题 下一主题

[查询] 求助:怎样根据一个给定日期自动计算其它日期字段的值

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-13 17:33:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shitou1ge 于 2010-1-14 09:27 编辑

怎样根据一个给定日期自动计算其它日期字段的值
描述在图片里。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2010-1-13 17:34:11 | 只看该作者
请高手帮帮忙啊
3#
 楼主| 发表于 2010-1-14 09:25:36 | 只看该作者
没人理俺
4#
发表于 2010-1-14 13:57:17 | 只看该作者
使用Access的查询视图,其SQL非常不优雅:
SELECT a.取证时间, IIf(DateAdd("yyyy",2,a.取证时间)>Date(),"",DateAdd("yyyy",2,a.取证时间)) AS 第一次复审,
IIf(IsNull(a.上一次复审),"",DateAdd("yyyy",Int(DateDiff("m",a.取证时间,Date())/24)*2,a.取证时间)) AS 上一次复审,
IIf(IsNull(a.上一次复审),DateAdd("yyyy",2,a.取证时间),DateAdd("yyyy",Int(DateDiff("m",a.取证时间,Date())/24)*2+2,a.取证时间)) AS 下一次复审
FROM 表1 AS a
如果允许使用VBA例程、进行逐笔赋值,可以让代码优雅些。
5#
发表于 2010-1-14 13:57:28 | 只看该作者
使用Access的查询视图,其SQL非常不优雅:
SELECT a.取证时间, IIf(DateAdd("yyyy",2,a.取证时间)>Date(),"",DateAdd("yyyy",2,a.取证时间)) AS 第一次复审,
IIf(IsNull(a.上一次复审),"",DateAdd("yyyy",Int(DateDiff("m",a.取证时间,Date())/24)*2,a.取证时间)) AS 上一次复审,
IIf(IsNull(a.上一次复审),DateAdd("yyyy",2,a.取证时间),DateAdd("yyyy",Int(DateDiff("m",a.取证时间,Date())/24)*2+2,a.取证时间)) AS 下一次复审
FROM 表1 AS a
如果允许使用VBA例程、进行逐笔赋值,可以让代码优雅些。
6#
 楼主| 发表于 2010-1-14 15:44:24 | 只看该作者
谢谢styhs 可是我改了改之后:第一次复审为空的时侯 上一次复审却成了取证的时间 如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2010-1-14 15:44:55 | 只看该作者
本帖最后由 shitou1ge 于 2010-1-14 15:46 编辑

我就是改了红字部份 不然上一次复审一列为空
SELECT a.取证时间, IIf(DateAdd("yyyy",2,a.取证时间)>Date(),"",DateAdd("yyyy",2,a.取证时间)) AS 第一次复审,
IIf(a.第一次复审,"",DateAdd("yyyy",(Int(DateDiff("m",a.取证时间,Date())/24))*2,a.取证时间)) AS 上一次复审,
IIf(a.上一次复审,DateAdd("yyyy",2,a.取证时间),DateAdd("yyyy",Int(DateDiff("m",a.取证时间,Date())/24)*2+2,a.取证时间)) AS 下一次复审
FROM 表1 AS a;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-13 13:37 , Processed in 0.086924 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表