Microsoft Access 2010 - 按基于查询的报表中的计算字段进行筛选

时间:2012-03-20 10:42:14

标签: ms-access report

好的,这是浓缩形式。我有三个主要表格来绘制数据:

StudentData - PK是学生的身份证号码。包含联系信息,其当前状态(无'00',缓刑'P',暂停'S')和累积gpa数据。

CourseData - PK是CRN。仅包含缩写主题和课程编号(IE ECON 200)

StudentCourses - PK是一个AutoNum。 StudentData和CourseData之间的多对多关系表。还包含特定学生班级的统计数据(成绩,学分,等)。

所以一些示例数据看起来像:

-

StudentData

人士ID:12345678 姓名:John Doe; ... [其他联系信息]; 00; CumCreditHours:100; CumCoursePoints:190

-

CourseData

CRN:0001;简称:ECON; CourseNumber:101

CRN:0002;缩写:CSCI; CourseNumber 201

-

StudentCourses

AutoNum:1 学生ID:12345678; CRN:0001;等级:A-;积分:3

AutoNum:2 学生ID 12345678; CRN:0002;等级:B;积分:3

-

此时,这就是我设置的方式:

首先,运行一个查询,查找学生所需的所有课程,并将字母等级转换为分数值。基于第一个的另一个查询总和点总数和信用小时数。第三个查询获取这些总数,并通过将点总数除以信用小时总数来计算GPA。

另外,运行一个查询,通过从StudentData表中获取累积点数和小时数来计算学生的累积GPA(再次将点数除以小时数)。

然后,另一个查询同时接受学期GPA,累计GPA,当前状态和累积学分,并计算学生的建议操作。因此,对于我们的示例数据,它看起来像:

_

SemesterGPA:3.33;累积GPA:1.90; CurrentStatus:00; CumulativeCreditHours:100

_

我有一个公式来确定他们建议的操作设置为一系列嵌套的IIF语句,如下所示:

IIf([CurrentStatus] =“00”和[CumulativeGPA]< 2和[CumulativeCreditHours]> = 12和[CumulativeCreditHours]< = 23,“PFY”,IIf([CurrentStatus] =“00”和[CumulativeGPA]> = 1.7并且[CumulativeGPA]< = 1.99并且[CumulativeCreditHours]> = 24,“P”,IIf([CurrentStatus] =“00”和[CumulativeGPA]< 2和[SemesterGPA]< 2和[CumulativeCreditHours]< 12,“W”,IIf([CurrentStatus] =“00”和[CumulativeGPA]> = 2和[CumulativeGPA]< = 2.5和[SemesterGPA]< 2和[CumulativeCreditHours]> ; = 12,“WUP”,IIf([CurrentStatus] =“00”和[CumulativeGPA]< 1.7和[CumulativeCreditHours]> = 24,“SUSP”,IIf([CurrentStatus] =“P”和[CumulativeGPA] < 2和[SemesterGPA]> = 2并且[CumulativeCreditHours]> = 12,“CP”,IIf([CurrentStatus] =“P”和[CumulativeGPA]> = 2和[SemesterGPA]< 2和[ CumulativeCreditHours]> = 12,“SPCP”,IIf([CurrentStatus] =“P”和[CumulativeGPA]> = 2和[CumulativeCreditHours]> = 12,“RP”,IIf([CurrentStatus] =“P”并且[CumulativeGPA]< 2和[SemesterGPA]< 2和[Cumula tiveCreditHours] GT; = 12,IIF(ISNULL([PriorSuspension]), “S(FD)”, “d(SD)”), “无”)))))))))

对于我们的例子,John Doe的推荐行动是“P”,因为他目前的状态是00,他有超过24个累积学分,他的累积学分在1.7到1.99之间。

现在出现问题:我希望能够制作一个可以按推荐操作过滤的报告。我已经详细介绍了我之前遇到的问题,但简而言之,就是我现在设置报告的方式(信息显示在基于StudentData表的报告中的子报告中,以提供上述内容使用StudentID的查询)不允许我这样做,因为我要过滤的字段存在于子报表而不是主报表中(并且您无法为子报表设置过滤器属性)。 / p>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,我现在已经开始工作了。我意识到,当我计算学期的GPA时,我在过程中的某个时刻通过ID将结果分组在一起。这允许我删除从表单中获取ID号的初始查询部分。由于过程中的最后一个查询通过学生ID将所有内容链接在一起,因此各个记录保存了我需要的所有信息,之后一切都落实到位。

我一半期待像这样简单的事情来解决我的问题,但是我仍然感到很失望,我花了这么长时间来弄明白......

无论如何,感谢任何可能考虑过解决此问题的人。