Ms access 在Access中创建日历

Ms access 在Access中创建日历,ms-access,ms-access-2007,Ms Access,Ms Access 2007,我在一个查询中有5个字段 员工、项目ID、年、月和日 我需要将所有查询数据放入一个报表中,在该报表中,数据按年、月和员工进行排序,每个项目ID都需要放在相应的日期下 My Query: Alice | P555 | 2014 | 11 November | 29 Darth | P999 | 2014 | 12 December | 27 Bob | P555 | 2014 | 12 December | 28 Darth | P555 | 2014 | 12 December | 29

我在一个查询中有5个字段

员工、项目ID、年、月和日

我需要将所有查询数据放入一个报表中,在该报表中,数据按年、月和员工进行排序,每个项目ID都需要放在相应的日期下

My Query:

Alice | P555 | 2014 | 11 November | 29
Darth | P999 | 2014 | 12 December | 27
Bob   | P555 | 2014 | 12 December | 28
Darth | P555 | 2014 | 12 December | 29
Alice | P999 | 2014 | 12 December | 29
Bob   | P999 | 2014 | 12 December | 29
Alice | P999 | 2014 | 12 December | 30
Alice | P555 | 2015 |  1 January  |  3
Alice | P999 | 2015 |  1 January  |  4
Darth | P555 | 2015 |  1 January  |  4
它需要看起来像这样

Calendar Report:

2014
   11 November   1 | 2 | ... | 28 |  29  | 30
         Alice     |   | ... |    | P555 | 

   12 December   1 | 2 | ... |  27  |  28  |  29  |  30  | 31
         Alice     |   | ... |      |      | P999 | P999 |   
         Bob       |   | ... |      | P555 | P999 |      | 
         Darth     |   | ... | P999 |      | P555 |      |   

2015
     1 January   1 | 2 |   3  |   4  | 5 | ... | 30
         Alice     |   | P555 | P999 |   | ... | 
         Darth     |   |      | P555 |   | ... | 

我可以创建包含年、月和员工的行,但我不知道如何创建列,也不知道创建列后如何添加项目ID。任何朝着正确方向的努力都将不胜感激!:)

交叉表查询应该可以让您非常接近您想要的内容

TRANSFORM First(Calendar.[Project ID]) AS [FirstOfProject ID]
SELECT Calendar.Year, Calendar.Month, Calendar.Employee
FROM Calendar
GROUP BY Calendar.Year, Calendar.Month, Calendar.Employee
PIVOT Calendar.Day;

我不太明白为什么不使用datetime字段,而不将年、月和日分开。

所有的天都在一行中?i、 e.不像在Outlook中那样按周分组)@Brad Correct,每个月都需要在自己的单独行中,这与Outlook不同。我可以使用交叉表查询,但这样我就无法将月/年分隔到单独的表中。我也可以为每个月制作一个单独的交叉表,但是如果表中添加更多的天数,我将不得不手动输入更多的月份查询。很抱歉,鉴于您提出的问题,这对我来说没有意义。你到底想做什么?抱歉搞混了。我需要做的是获取表/查询中的一组数据,并将其放入报表中。可以随时从表/查询中添加或删除数据。我需要在报告中制作一个日历,将数据分为年、月、员工。通过对数据进行分类,我创建了一个日历。此日历不像Outlook中那样以周为间隔。我不能使用交叉表,因为我无法按年份、月份、员工……对数据进行分组。。。。我不确定我是否澄清了这一点,还是让它变得更加混乱>\u我不明白为什么交叉表不能按年度、月份、员工进行分组。我的例子说明了这种分组。如果需要报表,为什么不使用报表分组?您可以使用IN语句确保包括所有日期。您可以使用(1,2,3,4…30,31)中的透视日历.Day,否则必须在VBA中生成查询