尝试在表单上创建字段名称的条件列表

时间:2016-06-10 13:44:10

标签: ms-access

我有一个旧数据库,用于跟踪员工参加培训活动的情况。每条记录都是一名员工,并且遵循基本的名字/姓氏电话号码等...大约有150个字段代表过去的事件,每个字段都有一个是/否复选框,表明该员工是否参加了该事件。

我有一个表格,可以轻松查看和编辑员工记录。我目前有一个大量的事件列表,其复选框与主表中的相应字段相关联。

我需要创建当前正在查看的员工参加的事件列表,以便显示为指定员工检查的所有字段名称。

我知道我正在使用的数据库的设计显然是不完美的,但有什么方法可以做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你基本上需要" unpivot"每个事件的~150列到

的临时表中
EmployeeID  EventID
----------  -------
         1  event1
         1  event3
         1  event7

最常见的" unpivot"在Access中,UNION ALL是一系列单独的SELECT。但是,这只适用于大约十几个UNION(之后Access会抛出一个"查询太复杂而且#34;错误),因此您必须将其分解为更小的"事件"字段并将结果存储在临时表中。

避免不得不做那些凌乱的" univoting"一遍又一遍,你应该修改你的数据库结构,使其成为" univoted"表永久并摆脱另一个表中的~150个字段。这是"短期疼痛,长期收益的典型案例"