DateAdd和date字段不作为查询的条件

时间:2016-03-11 18:04:40

标签: date ms-access ms-access-2013

我正在处理的查询之前已经有效。我不知道自从我的同事离开后继承它的确切日期。每次运行查询时,我都会在条件表达式中得到数据类型不匹配。"

   SELECT Personnel.Badge, Personnel.First_Name, Personnel.Last_Name, Training.Course, DateAdd("m",[Cert_Duration],[Latest_Course_Date]) AS Cert_Expiration, Personnel.Reports_To
FROM Training INNER JOIN (Personnel INNER JOIN qry_Training_Log_Latest_Course ON Personnel.Badge = qry_Training_Log_Latest_Course.Personnel) ON Training.Training_ID = qry_Training_Log_Latest_Course.Course
WHERE (((DateAdd("m",[Cert_Duration],[Latest_Course_Date]))<DateAdd("m",6,Date())) AND ((Training.Cert_Duration) Is Not Null));

看来这条线

我将不胜感激。

1 个答案:

答案 0 :(得分:3)

此查询还会触发“条件表达式中的数据类型不匹配。”

SELECT DateAdd("m", Null, Date());

因此,您的错误可能是由此表达式中的空[Cert_Duration]值引起的......

DateAdd("m",[Cert_Duration],[Latest_Course_Date])

您需要将查询修改为......

  1. 在评估[Cert_Duration]之前,排除空值为DateAdd() 的行
  2. 或者用其他内容替换该表达式中的空[Cert_Duration]值。