使用 IIf 和 or 语句访问计算字段

Access Calculated Field with IIf and or statement

我正在处理评分数据库。我的学生写了一篇论文,并在 7 个不同的领域得到了 6 到 1 的分数。 6 分是最好的,1 分是最差的。学生必须在任何一个领域获得 80% 且不超过 4 分的分数才能通过。

编辑:我将尝试清理它:

目前有一个 table 具有以下字段:

Student_Name

Paper_Analysis(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Purpose(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Voice(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Concision(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Accuracy(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Content(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Reasoning(该字段的取值范围为 1 到 6,6 为最佳)

Paper_Score(这是计算字段加上Paper_Purpose、Paper_Voice、Paper_Concision、Paper_Accuracy、Paper_Content、Paper_Reasoning)

Paper_Average(此字段是计算为 [Paper_Score]/42

的百分比

Paper_Pass(要让学生通过,他们必须在论文平均分字段中达到 80% 以上。他们在 Paper_Purpose、Paper_Voice 中的任何一项中也只允许一个 4 , Paper_Concision, Paper_Accuracy, Paper_Content, Paper_Reasoning 字段。)

Paper_Pass 字段是我遇到的问题。我使用了 IIf([Paper_Average]>0.8,"PASS","FAIL"),但这并没有考虑到唯一的一个 4 规则。

感谢您的欢迎。我愿意使用 SQL 或任何最有效的方法。唯一需要注意的是我是 SQL.

的新手

假设通过规则如下:

To pass, the average score has to be 80% or above and only one score is allowed to be 4 or below.

那么你可以使用这个公式:

IIf(Paper_Average >= 0.8 AND -((Paper_Analysis <= 4) + (Paper_Purpose <= 4) + (Paper_Voice <= 4) + (Paper_Concision <= 4) + (Paper_Accuracy <= 4) + (Paper_Content <= 4) + (Paper_Reasoning <= 4)) <= 1,'PASS','FAIL') AS Paper_Pass

为什么这样做?

布尔值(可以是 TrueFalse)的数字表示 True-1 False0。至少在 Microsoft Office(Access 是其中的一部分)中。我通过将七个 Paper 字段中的每一个字段的结果相加为 4 或更少来使用它。这是前两个论文字段的示例:

(Paper_Analysis <= 4) + (Paper_Purpose <= 4)

如果Paper_Analysis等于或小于4,则第一个加数为-1。如果Paper_Purpose也是4或更小,那么第二个被加数也是-1,所以结果是-2。例如,如果 Paper_Purpose 是 5,则第二个被加数将为 0,结果 -1.

如果您对所有 7 个论文字段都执行此操作并取反结果,则结果可能是 07 之间的任何值,测量4分或以下分数的数目。要通过,此值必须为 <= 1.