追加查询故障

问题描述:

我有我的追加查询的最后一块麻烦。我有记录的产生,就像我想不会触发直到表达Event Date is <=Date()除外。这是给我一个无与伦比的错误,当我放置<=Date()在查询生成器的条件字段。我用DateSerial和其他一些变化试了一下。我相信这与表达是相关的,而不是一个艰难的约会。任何援助将不胜感激。追加查询故障

INSERT INTO SchedulingLog ( 
    UserID 
    , LogDate 
    , EventDate 
    , Category 
    , CatDetail 
    , [Value] 
) 
SELECT Roster.UserID 
, Date() AS LogDate 
, DateSerial(Year(Date()),Month([WM DOH]),Day([WM DOH])) AS EventDate 
, SchedulingLog.Category 
, SchedulingLog.CatDetail 
, Max(tblAccrual!WeeksAccrual*Roster!Schedule) AS [Value] 
FROM tblAccrual 
, [Schedule Type] 
, Category 
    INNER JOIN CatDetail 
     ON Category.CategoryID = CatDetail.CategoryID 
, SchedulingLog 
    INNER JOIN Roster 
     ON SchedulingLog.UserID = Roster.UserID 
WHERE (((tblAccrual.Years)<=Round((Date()-[wm doh])/365,2))) 
GROUP BY Roster.UserID 
    , Date() 
    , DateSerial(Year(Date()),Month([WM DOH]),Day([WM DOH])) 
    , SchedulingLog.Category 
    , SchedulingLog.CatDetail 
HAVING (((SchedulingLog.Category) Like "Vac*") 
      AND ((SchedulingLog.CatDetail) Like "Ann*")); 
+0

本身是否'SELECT'部分工作......当一个'INSERT'查询不包含的意思? – HansUp

+0

它在两个实例中都返回相同的错误。 –

+1

也这么想。简化问题,使其更易于解决。问题不是因为它是一个附加查询;问题是'SELECT'被破坏了。所以先解决。 – HansUp

我认为这个问题没有明确地将用户输入日期转换为CDate。我怀疑这是罚款的大部分查询,因为[MW DOH]参数被直接提供给将其转换为日期函数。但是WHERE子句需要显式转换。

以下内容会生成错误“此表达式的输入方式不正确,或者过于复杂,无法评估。例如,数字表达式可能包含太多复杂的元素。请尝试通过将表达式的部分分配给变量“。

SELECT Date()-[userinput] AS something; 

而下面的代码不

SELECT Date()-CDate([userinput]) AS something;