Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

有条件的更新查询

洪佳烽  发表于:2013-07-08 09:57:05  
复制

我原来做了个更新查询,把保养日期和保养周期相加,计算出下一保养日期。

由于计算出来的下一保养日期有时候是在星期六和星期日。

现在想把计算出来的结果如果是星期六就-1天,是星期日就+1天(相当于把计算结果提前一天或推迟一天)。

如何做这个更新查询?

 

Top
cspa 发表于:2013-07-08 11:06:46

用weekday函数,if weekday(计算出的下一保养日期)=1 THEN 计算出的下一保养日期=DateAdd(d, 1, 计算出的下一保养日期)
 end if

同理,if weekday(计算出的下一保养日期)=7 THEN 计算出的下一保养日期=DateAdd(d, -1, 计算出的下一保养日期)
 end if

Weekday 函数

       

返回一个 Variant (Integer),包含一个整数,代+1表某个日期是星期几。

语法

Weekday(date, [firstdayofweek])

Weekday 函数语法有下列的命名参数

部分 描述
date 必要。能够表示日期的 Variant数值表达式字符串表达式或它们的组合。如果 date 包含 Null,则返回 Null
Firstdayofweek 可选。指定一星期第一天的常数。如果未予指定,则以 vbSunday 为缺省值。


设置

firstdayofweek 参数有以下设定值:

常数 描述
vbUseSystem 0 使用 NLS API 设置。
VbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


返回值

Weekday 函数可以返回以下诸值:

常数 描述
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


洪佳烽 发表于:2013-07-08 11:51:04

我要做的是更新查询,IF语句好像不能用啊。我用IIF先做了个选择查询,可是这个查询没有对结果进行+1或-1计算。帮我看看错在哪。

SELECT 查询3.下一保养日期 AS 表达式2, 查询3.下一保养日期
FROM 查询3
WHERE (((查询3.下一保养日期)=IIf(Weekday([下一保养日期])=7,[下一保养日期]-1,[下一保养日期]) Or (查询3.下一保养日期)=IIf(Weekday([下一保养日期])=1,[下一保养日期]+1,[下一保养日期])));




cspa 发表于:2013-07-08 12:44:14

上面的查询肯定是不对的,首先iif语句放在条件子句中是不对的,其次日期加减不能用+1或-1,应用DateAdd函数...

 

iif语句用来2选1较方便,但你的要求是3个情况:星期六、星期日及非星期六、星期日,每个情况处理不同,所以用IIF不太方便,用VBA较方便,但不是一两句能说清的,最好上传你的例子。



落尘_小新 发表于:2013-07-08 20:10:04
网行者 发表于:2013-07-09 06:27:24
SELECT *, [保养日期]+[保养周期] AS 计算日期, IIf(Weekday([计算日期],2)=6,[计算日期]-1,IIf(Weekday([计算日期],2)=7,[计算日期]+1,[计算日期])) AS 下一保养日期
FROM 保养记录;

洪佳烽 发表于:2013-07-12 09:54:57

抱歉,这几天都很忙,今天才来看回复。

两位版主的方法虽然不同,但都解决了我的问题,网行者版主的方法简单些,就选他的方法好了,谢谢各位!学习了!



总记录:6篇  页次:1/1 9 1 :