+--------------+----------+-------------+------------+---------------+
| InstructorID | CourseID | Course date | Type | Pass or Fail? |
+--------------+----------+-------------+------------+---------------+
| 00001 | 1 | 22/05/2007 | Assessment | True |
| 00001 | 2 | 01/02/2012 | Assessment | True |
| 00001 | 3 | 21/08/2015 | Training | True |
| 00001 | 3 | 21/06/2016 | Assessment | False |
| 00001 | 4 | 21/03/2013 | Assessment | True |
| 00001 | 11 | 10/10/2014 | Training | True |
| 00004 | 3 | 20/01/1975 | Assessment | True |
| 00100 | 1 | 25/05/2005 | Assessment | True |
| 00100 | 5 | 12/12/1999 | Assessment | True |
| 22222 | 1 | 07/05/2013 | Training | True |
| 22222 | 9 | 08/05/2015 | Assessment | False |
| 22222 | 10 | 04/06/2015 | Assessment | True |
| 22222 | 12 | 14/05/2014 | Assessment | True |
+--------------+----------+-------------+------------+---------------+
我有一个查询引用此表的类型和Pass或Fail?。会发生的是我有一个带有组合框和复选框以及按钮的搜索页面,当按下按钮时,它将在组合框中搜索活动,然后搜索通过或失败是真是或不,然后如果类型是评估'或者'培训'。当复选框没有被取消时,它将进行训练,因为它们在技术上不合格,但是当勾选它时,它应该只显示有资格进行划独木舟,有评估,通过或失败的教练是真的。
10,11,12是3个独木舟课程的ID。
我的查询将产生合格:
IIf([Forms]![Find Activity Instructors]![Check4]=True,IIf([Pass or Fail?]=True,[Type]="Assessment",IIf([Forms]![Find Activity Instructors]![Check4]=False,IIf([Pass or Fail?]=True,[Type]="Training",[Pass or Fail?]=False))))
所以我的问题是,当组合框被选为划独木舟时,为什么不会出现培训教练?
Screenies:
https://snag.gy/jFru12.jpg查询屏幕
https://snag.gy/1HWImy.jpg搜索屏幕
https://snag.gy/CFIGJi.jpg当Combo is Canoeing和Check复选框为True时出现的内容
https://snag.gy/TO9ZiA.jpg当组合划独木舟并且复选框为假时会发生什么
答案 0 :(得分:0)
由于IIf()的嵌套方式,IIf([Forms]![Find Activity Instructors]![Check4]=False,IIf([Pass or Fail?]=True,[Type]="Training",[Pass or Fail?]=False
仅在[Pass或Fail!]的第一次测试为假时运行。
你没有显示任何训练有[通过或失败?] =假的记录 - 可能有吗?考虑:
WHERE [Category] = [Forms]![Find Activity Instructors]![Category] AND [Type] = IIf([Forms]![Find Activity Instructors]![Check4] = True," Assessment&# 34;,"培训")和[通过或失败?] =真
我从不在查询中使用动态参数。我更喜欢构造过滤条件的表单背后的代码,然后应用于表单或报表。
建议名称中不要使用空格或标点符号/特殊字符(下划线是例外)。更好的是[IsPassed]或[Is_Passed]。