2017-02-22 200 views
-1

我在MS Access下面的代碼:無效的SQL語句;預計 「刪除」

Set rs = con.Execute 

(SELECT PO_Number, PR_Number, PO_Creator_Number, PO_Creator_Name, PR_Creator_Number, PR_Creator_Name, 
    (CASE WHEN PO_Creator_Region <> "'IL'" 
    THEN 
    ((DATEDIFF(dd, PR_Creation_Date, PR_Approval_Date)+1) 
    -(DATEDIFF(wk, PR_Creation_Date, PR_Approval_Date)*2) 
    -(CASE WHEN DATENAME(dw, PR_Creation_Date) = "'Sunday'" THEN 1 ELSE 0 END) 
    -(CASE WHEN DATENAME(dw, PR_Approval_Date) = "'Saturday'" THEN 1 ELSE 0 END)), 
        ELSE 
        ((DATEDIFF(dd, PR_Creation_Date, PR_Approval_Date)+1) 
        -(DATEDIFF(wk, PR_Creation_Date, PR_Approval_Date)*2) 
        -(CASE WHEN DATENAME(dw, PR_Creation_Date) = "'Friday'" THEN 1 ELSE 0 END) 
        -(CASE WHEN DATENAME(dw, PR_Approval_Date) = "'Saturday'" THEN 1 ELSE 0 END)) 
        END) AS PR_Cycle_Time 

FROM PO_PR_INFO_TBL 

WHERE PR_Creation_Date ='" & txtnumb & "'", 
     PR_Approval_Date = '" & txtnumb & "'", 
     PO_Creation_Date ='" & txtnumb & "'" 

GROUP BY PO_Number, PR_Number, PO_Creator_Number, PO_Creator_Name, PR_Creator_Number, PR_Creator_Name) 

然後MS訪問給我一個錯誤消息說

無效的SQL語句;預計 「刪除」, 「插入」, 「程序」, 「SELECT」 或 「UPDATE」

誰能幫助我解決這個問題?

+0

用SET刪除該行 –

+1

您正在混合VBA和SQL。這是什麼代碼?我以爲你把它放在查詢窗口中,期望只有SQL,因爲VBA會在編譯的語法問題上用紅色突出顯示,因爲代碼顯示文字沒有換行符或引號。 – Parfait

+0

謝謝你看我的問題!是的,我把它放在SQL窗口中,只希望得到SQL結果,因爲我真的沒有VBA的經驗...... – Ying

回答

0

如果幸運的話,用SELECT * FROM(代替set...行,最後加上)就可以了。

但是,這只是針對一個快速和骯髒的解決方案,因爲查詢似乎不完全正確形成。