使用 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
为什么这样做?
布尔值(可以是 True
或 False
)的数字表示 True
是 -1 False
为 0。至少在 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 个论文字段都执行此操作并取反结果,则结果可能是 0 和 7 之间的任何值,测量4分或以下分数的数目。要通过,此值必须为 <= 1
.
我正在处理评分数据库。我的学生写了一篇论文,并在 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
为什么这样做?
布尔值(可以是 True
或 False
)的数字表示 True
是 -1 False
为 0。至少在 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 个论文字段都执行此操作并取反结果,则结果可能是 0 和 7 之间的任何值,测量4分或以下分数的数目。要通过,此值必须为 <= 1
.