如何设置field2 =工作日+1

时间:2013-07-16 00:27:18

标签: sql vba ms-access ms-access-2007

我正在寻找代码,当Field1不为null时,代码会在下一个工作日的日期自动输入Field2。或者更准确地说Field2 = Field1 + 1个工作日

我使用Access 2007作为前端,使用SQL 2008作为后端。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

听起来您正在寻找UPDATE的{​​{1}}语句:

DATEADD

或者如果您尝试删除周末并且总是更新到最近的星期一,那么这是update YourTable set Field2 = dateadd(day,1,Field1) where Field1 is not null 的一种方式:

CASE

答案 1 :(得分:0)

如果要在Access中针对链接的SQL Server表运行查询,则查询必须使用与Access兼容的SQL。

要比Field2日期晚一天Field1

UPDATE YourTable
SET Field2 = DateAdd('d', 1, Field1)
WHERE Field1 Is Not Null;

要跳过周末,请使用Weekday语句中的Switch功能确定要添加的天数。

UPDATE YourTable
SET Field2 =
    DateAdd
        (
            'd',
            Switch
                (
                    Weekday(Field1) = 6, 3,
                    Weekday(Field1) = 7, 2,
                    Weekday(Field1) >= 1 AND Weekday(Field1)<=5, 1
                ),
            Field1
        )
WHERE Field1 Is Not Null;