为访问计算引入计划

时间:2012-10-25 16:22:22

标签: ms-access schedule

我真的不知道如何提出这个问题或标题,但我在这里。我在学校系统工作,我为一些心理学家创建了一个数据库,用于跟踪他们的推荐。根据州规定,他们从第一次会议之日起60天内完成流程。周末仍然有效,但假期不要。我真的不知道如何使用我们的日历,以便我们有一个准确的计算。例如,假设占了假期,如果一个孩子今天开始,他将需要在2013年1月18日完成所有工作。根据我们的时间表,现在是60天。有谁知道我应该从哪里开始?

修改

好的,我现在有一张日历表。这是我的问题。我有我的专栏,用于表明在计算我的60天时使用了哪些天数。周末可用于该计算。但是,它们不能用于结果中。如果第60天是在星期日或星期六,则日期需要在星期五之前。我想我的第一个问题是,我如何将计算限制在日历表中的日期?

2 个答案:

答案 0 :(得分:1)

使用日历表可以很容易。

PARAMETERS start_date DateTime;
SELECT TOP 1 sub.the_date
FROM
    (
        SELECT TOP 60 the_date
        FROM tblCalendar
        WHERE
                the_date>=[start_date]
            AND work_day=True
        ORDER BY the_date
    ) AS sub
ORDER BY sub.the_date DESC;

该查询基于您为要评估的日期设置work_dayTrue的假设。 IOW,work_dayFalse仅适用于贵组织的假期。

有关创建和加载日历表的示例代码,请参阅Using Start Date and End date in Access query处的CreateTable_calendar()LoadCalendar()程序。要最初将所有日期(包括周末天数)指定为工作日,请在LoadCalendar()

中进行此更改
'rs!work_day = Not (Weekday(dte) = vbSunday Or _
'    Weekday(dte) = vbSaturday)
rs!work_day = True

最后,手动修改表格,将work_day更改为False,以便您的假期。

答案 1 :(得分:0)

您可以查看工作日以确保您没有选择周末:

SELECT TOP 1 CalDate, WDay 
FROM (SELECT Top 60 c.CalDate,Weekday([Caldate]) AS WDay
      FROM Calendar c
      WHERE c.Holiday=False) a
WHERE WDay Not In (1,7)
ORDER BY CalDate DESC