Microsoft Access - 如何为多选查询

时间:2016-04-30 09:21:35

标签: ms-access labels

我在Microsoft Access数据库中被要求帮助。但是,自从我使用Access数据库以来已有十多年了,我不确定自己是否可以按照他们的要求行事。

数据库有几个与此类似的变量:
“过去一周你有多少次打喷嚏”
决不
一到两次
两次到五次 超过五个

他们希望分析数据并将响应分别转换为1,2,3和4。但是,我不确定如何使用Access。他们还需要保留文本,因为协作者仍在上传数据,并希望查看对他们提出的问题的回复 1 - 从不
2 - 一到两次
3 - 两次到五次 4 - 超过五个

我的问题是:有没有办法在Access中执行此操作?而不会弄乱数据。我可以使用任何编程语言轻松转换这些变量,但希望确保Access中没有选项。

感谢您的帮助!任何建议表示赞赏。

3 个答案:

答案 0 :(得分:1)

我建议创建一个Reponses表。实际上,这个表可能已经存在于数据库中了吗?

只需创建一个包含ID和ResponseText的表。

RID     ResponseText
1       Never
2       One to twice
Etc.

现在,在任何报告或查询中,只需将上表作为左连接加入并包含ID号。此时,您的查询包含ResponseText和RID编号。

以上的优点是不需要代码,您可以随着时间的推移向列表中添加新值(同样无需更改应用程序)。

然后将表中的数据放入查询构建器,然后放入上表。现在从主表中的文本列到上面的文本列绘制连接线。您现在有一个“id”列,它将显示一个数字。

因此不需要代码,使用查询会将这些文本值转换为数字。

答案 1 :(得分:0)

您可以使用查询中的计算字段和IIF语句来执行此操作。

类似

iif([sneezes]="Never",1, iif([sneezes]="One to Twice",2, iif([sneezes]="Twice to 5",3, iif([sneezes]="More than five",4,"ERROR"))))

将[sneezes]替换为您的数据的字段名称。您可能需要将“ERROR”替换为数字或任何适当的值。

新查询可以包含您需要的所有字段以及此额外计算的字段。该表根本没有变化。然后导出查询,如果您需要访问外部或只是在表单或报表上引用它。导出查询与导出表格相同。

非常类似于这个答案Am trying to categorise values using Ms Access

答案 2 :(得分:0)

您也可以使用 Switch ,这可能比长 IIf 构造更容易处理:

ResponseCode; Switch([Response]="Never",1,[Response]="One to Twice",2,[Response]="Twice to Five",3,[Response]="More than Five",4)
相关问题