繁体   English   中英

在Access 2010查询中使用IF THEN

[英]Using IF THEN in Access 2010 Query

我对Access查询的编码不是很了解,所以希望有人可以帮助解决这个问题。 我有一个查询(使用查询生成器),该查询具有来自表tblProcedures名为RetrainInterval的字段(这将返回一个数字,例如tblProcedures等;必须重新训练特定文档的轮换月份),并且表tblTrainingRecords另一个名为Training/Qualification Date tblTrainingRecords

我希望查询查看给定记录的RetrainInterval (记录字段在tblProceduresClassID ),然后查看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/

报告-http://postimg.org/image/krl5945l9/

如果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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM