2013-12-09 71 views
0

我有我的追加查詢的最後一塊麻煩。我有記錄的產生,就像我想不會觸發直到表達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

回答

0

我認爲這個問題沒有明確地將用戶輸入日期轉換爲CDate。我懷疑這是罰款的大部分查詢,因爲[MW DOH]參數被直接提供給將其轉換爲日期函數。但是WHERE子句需要顯式轉換。

以下內容會生成錯誤「此表達式的輸入方式不正確,或者過於複雜,無法評估。例如,數字表達式可能包含太多複雜的元素。請嘗試通過將表達式的部分分配給變量「。

SELECT Date()-[userinput] AS something; 

而下面的代碼不

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