Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 尝试在窗体上创建字段名的条件列表_Ms Access - Fatal编程技术网

Ms access 尝试在窗体上创建字段名的条件列表

Ms access 尝试在窗体上创建字段名的条件列表,ms-access,Ms Access,我有一个旧数据库,用于跟踪员工参加培训活动的情况。每个记录都是一名员工,并遵循基本的名字/姓氏电话号码等。。。大约有150个字段表示过去的事件,每个字段都有一个是/否复选框,指示该员工是否参加了该事件 我有一个表单,可以方便地查看和编辑员工记录。我目前有一个带有复选框的大量事件列表,这些复选框与主表中的相应字段相关联 我需要创建当前正在查看的员工参加的事件列表,以便显示为指定员工检查的所有字段名 我知道我正在使用的数据库的设计显然是不完美的,但是有什么方法可以做到这一点吗 提前谢谢 您基本上需要

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

我有一个表单,可以方便地查看和编辑员工记录。我目前有一个带有复选框的大量事件列表,这些复选框与主表中的相应字段相关联

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

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


提前谢谢

您基本上需要将每个事件的~150列“unpivot”到一个临时表中,其中包含

EmployeeID事件ID
----------  -------
1事件1
1事件3
1事件7
Access中“unpivot”最常见的方法是将所有一系列单独的选择联合起来。但是,这只适用于十几个联合(在这之后Access会抛出一个“查询太复杂”错误),因此您必须将其分成更小的“事件”字段组,并将结果存储在临时表中


为了避免一次又一次地“取消激活”,您应该修复数据库结构,使“取消激活”表成为永久表,并去掉另一个表中的~150个字段。这是一个典型的“短期痛苦,长期收益”的例子。

您基本上需要将每个事件的~150列“unpivot”到一个带有

EmployeeID事件ID
----------  -------
1事件1
1事件3
1事件7
Access中“unpivot”最常见的方法是将所有一系列单独的选择联合起来。但是,这只适用于十几个联合(在这之后Access会抛出一个“查询太复杂”错误),因此您必须将其分成更小的“事件”字段组,并将结果存储在临时表中


为了避免一次又一次地“取消激活”,您应该修复数据库结构,使“取消激活”表成为永久表,并去掉另一个表中的~150个字段。这是“短期痛苦,长期收益”的经典案例。

这些复选框字段的命名方式是否一致?有很多方法可以遍历表中的字段,因此,如果获得为每个员工选中的复选框的字段名列表可以满足您的需要,那么有一种方法。这个问题与下面的问题几乎相同。这个问题的答案能满足你的需要吗?如果不是,这个问题有什么不同?是的,名称很好,如果你的意思是这样的话,获取字段名的原始列表是可以接受的。@HansUp是的,我看到了,我尝试了这个解决方案,但它对我不起作用。我不是VBA方面的专家,所以可能是我把代码放错了地方。我还需要将其打印在表单上,所以我不知道如何将代码的结果输入到表单中。如果您可以让该函数正常工作,您可以用员工和员工参加的研讨会填充一个临时表格。然后将表单建立在临时表上。这些复选框字段的命名方式是否一致?有很多方法可以遍历表中的字段,因此,如果获得为每个员工选中的复选框的字段名列表可以满足您的需要,那么有一种方法。这个问题与下面的问题几乎相同。这个问题的答案能满足你的需要吗?如果不是,这个问题有什么不同?是的,名称很好,如果你的意思是这样的话,获取字段名的原始列表是可以接受的。@HansUp是的,我看到了,我尝试了这个解决方案,但它对我不起作用。我不是VBA方面的专家,所以可能是我把代码放错了地方。我还需要将其打印在表单上,所以我不知道如何将代码的结果输入到表单中。如果您可以让该函数正常工作,您可以用员工和员工参加的研讨会填充一个临时表格。然后将表单建立在草稿表上。