查询从记录中访问表单列

时间:2010-03-31 07:04:17

标签: sql ms-access

在工作中,我们有一个历史上一直保存在庞大的Excel工作簿中的名单。由于员工的变化等原因,这会变得有点脆弱,所以我试图将其作为Access数据库强有力地重新实现。

我有一张人员表(字段包括姓名和其他人的属性)和一张假期表 - 每个假期都有person_ID,开始日期和结束日期。

我希望能够从中生成的是一个名单网格,就像我们在Excel工作簿中所做的那样:

Date    Person A    Person B    Person C
01 Jan  -           -           -
02 Jan  -           -           -
03 Jan  VAC         -           -
04 Jan  VAC         VAC         -
05 Jan  VAC         VAC         -
06 Jan  -           VAC         -
07 Jan  -           -           -
08 Jan  -           -           -
09 Jan  -           -           -

(在这个例子中,Vactions表有两条记录 - 一条用于人A,一条用于人B.)

用Excel可以做到这一点吗?或者我将不得不写一些代码?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用访问中的数据透视表来执行此操作,但是显示此类数据是“Excel访问/数据库”综合症的典型症状。

Mild Tangent

我总是被告知在数据库中只有3个数字0,1和n,其中n是介于2和无穷大之间的任何数字。当你有少量工作人员时,显示这样的数据很好但是当你得到50或300名员工时会发生什么?我会以不同的方式显示数据,可能是交互式表格或其他类型的动态显示。如果它必须是纸张,那么每个人可能会发布某种报告吗?

/ Mild Tangent

答案 1 :(得分:1)

我会推荐

  • 建立一个日期表(对于您可能使用的每个日期,表格都有一行,比如01/01/2000到31/12/2020)

  • 在此表的帮助下,构建一个视图,列出每个人的每个日期,并显示该人是否在该日期休假(假期和日期表之间的联合以及假期和人之间的联接)

  • 现在比较棘手。你现在需要为自己构建一个交叉标签查询....但是访问权限很有趣(暂时没有使用访问权限,所以可能会出错)。

  • 然而,我建议在上面的第2步中构建视图,然后使用Excel的强大功能为您构建数据的数据透视表。将Excel电子表格链接到Access数据库,每次用户需要刷新数据时,他们都会刷新它!

HTH