2014-02-10 95 views
1
执行查询

你好,我有这个疑问:错误VBA

strSQL = "SELECT DATEPART(yyyy,ArriveDate) AS God," & _ 

"COUNT (CASE DATEPART(d,ArriveDate) WHEN 1 THEN DATEPART(d,ArriveDate) END)As m1 ," & _ 
"COUNT (CASE DATEPART(d,ArriveDate) WHEN 2 THEN DATEPART(d,ArriveDate) END)As m2 ," & _ 
"COUNT (CASE DATEPART(d,ArriveDate) WHEN 3 THEN DATEPART(d,ArriveDate) END)As m3 ," & _ 
"COUNT (CASE DATEPART(d,ArriveDate) WHEN 4 THEN DATEPART(d,ArriveDate) END)As m4 " & _ 

" FROM Company " & _ 

    " WHERE DATEPART(yyyy,ArriveDate) =" & [Forms]![Raport_lunar_anual_carnete]![ANUL] & _ 

    " AND DATEPART(mm,ArriveDate)= " & [Forms]![Raport_lunar_anual_carnete]![LUNA] & _ 

    " GROUP BY DATEPART(yyyy,ArriveDate)" 

它说我说:关键字附近不正确的语法 “和”

+0

也许尝试删除这部分中的逗号(',')作为m4,'成为'm4'。这会触发SQL服务器的错误,不确定有关ms访问 – har07

+0

我删除它,也试试这个eror – Sergio

+0

调试,在上面的代码后面加上break point,并看到'strSQL'字符串输出。如果您在查看后没有想法,请张贴字符串。 – har07

回答

0

试试这个

strSQL =   " SELECT DATEPART(yyyy,ArriveDate) AS God,"  
strSQL = strSQL & " COUNT (CASE DATEPART(d,ArriveDate) WHEN 1 THEN DATEPART(d,ArriveDate) END)As m1 ," 
strSQL = strSQL & " COUNT (CASE DATEPART(d,ArriveDate) WHEN 2 THEN DATEPART(d,ArriveDate) END)As m2 ," 
strSQL = strSQL & " COUNT (CASE DATEPART(d,ArriveDate) WHEN 3 THEN DATEPART(d,ArriveDate) END)As m3 ," 
strSQL = strSQL & " COUNT (CASE DATEPART(d,ArriveDate) WHEN 4 THEN DATEPART(d,ArriveDate) END)As m4 ,"  
strSQL = strSQL & " FROM Company "  
strSQL = strSQL & " WHERE DATEPART(yyyy,ArriveDate) =" & [Forms]![Raport_lunar_anual_carnete]![ANUL] &  
strSQL = strSQL & " AND DATEPART(mm,ArriveDate)= " & [Forms]![Raport_lunar_anual_carnete]![LUNA] &  
strSQL = strSQL & " GROUP BY DATEPART(yyyy,ArriveDate)" 
+0

它不起作用... :( – Sergio

+0

你用这个 –

+0

得到了什么错误,它告诉我他在这个修改的查询中找不到过程错误 – Sergio