[英]Using IF THEN in Access 2010 Query
我对Access查询的编码不是很了解,所以希望有人可以帮助解决这个问题。 我有一个查询(使用查询生成器),该查询具有来自表tblProcedures
名为RetrainInterval
的字段(这将返回一个数字,例如tblProcedures
等;必须重新训练特定文档的轮换月份),并且表tblTrainingRecords
另一个名为Training/Qualification Date
tblTrainingRecords
。
我希望查询查看给定记录的RetrainInterval
(记录字段在tblProcedures
为ClassID
),然后查看Training/Qualification Date
并计算该记录是否应在查询中。
在模块中,我将执行以下操作:
IF RetrainInterval = 1 Then
DateAdd("m",1,[Training/Qualification Date]) <add to query if <=today()+30>
ElseIf RetrainInterval = 3 Then
DateAdd("m",3,[Training/Qualification Date]) <add to query if <=today()+30>
ElseIF......
如何将其转换为可以在查询中使用的内容? 我的最终目标是生成一个报告,该报告将向我显示在指定的时间间隔内到期的文档类编号(例如,我在表单文本框中输入30,以表示查询后30天内即将进行的任何所需培训)。确定上次培训日期的时间(存储在培训记录表中)的基础上进行的计算。 我还想确保同一班级编号不会得到多次回报,因为每个班级都会有多个培训条目,只是获取最少的最后一次培训日期。 我希望我解释得足够好。 在不存储整个数据库的情况下,很难说出我要做什么。
更新
我想休息一会后,我已经简化了一点。 这是两张图片,一幅是当前查询,一幅是报告中显示的内容。 我已经能够对此进行一些改进,但是现在我的问题是,即使我有多个重新培训的到期日期,我也只希望特定的类在报表上显示一次,而不是两次(因为所有内容都在查看包含员工培训数据,并且每个班级编号都会有多个培训)。 我只想显示一个日期,最早的。 希望有道理。
查询-http: //postimg.org/image/cpcn998zx/
如果RetrainInterval = 1,则在[培训/资格日期]上增加1个月。
当RetrainInterval = 3时,您将[培训/资格日期]增加3个月。
等等。
模式似乎是RetrainInterval是要添加的月份数。 如果是这样, 请在您的DateAdd()
表达式中直接使用RetrainInterval ,不要担心IF THEN
。
DateAdd("m", RetrainInterval, [Training/Qualification Date])
您不能在查询中这样做。 到那儿,诅咒那个!
您可以使用IFF(2> x; 1; 0)来确定如果第一条语句为true,则返回1,如果为false,则返回0。 您不能返回类似IFF(2> x; Cell> 2; Cell> 0)的条件(不可能)(如果可能),我想它只会返回0。 它不会一直显示错误。
您必须使用条件! 我想要这样的图片:
希望您关注,否则请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.