2016-05-10 120 views
0

我正在VBA中運行但同樣不起作用。獲取錯誤否值給定一個或多個必需參數。VBA ADODB連接-SQL查詢

我的查詢:

ESQL =「選擇MAPPING_MONTH.DT,SUM(MAIL_ACTIVE_Base_Tracker_GA_AM_AO.COUNT)作爲GA_COUNT從MAPPING_MONTH左外連接MAIL_ACTIVE_Base_Tracker_GA_AM_AO B關於A.DT = B.DATE其中((MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE) = 「& 」「」」 & FName參數& 「GROUP BY MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE」 「)」

RS.Open(ESQL),CN,ADOPENSTATIC,ADLOCKREADONLY

+0

我注意到你是別名表A和B,但只使用連接條件中的別名,而不是在select,where或group by子句中。這可能會導致問題。 – UberDoodles

+0

錯誤可能是由以下行引起的:''「」「」&FName&「GROUP BY MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE」「)」'...你需要在'FName'和'GROUP BY'之間有一個空格。 –

回答

0

雖然有一些代碼中缺少這可能是有幫助在在這裏調試代碼是一些改進(可能)已經解決了您的問題。如果情況並非如此,那麼您可能需要考慮更新您的帖子並添加更多代碼(您聲明RSCN並設置ADODB.Connection)。

如此說來這裏的修改建議:

esql = "  select MAPPING_MONTH.DT, " 
esql = esql & "  sum(MAIL_ACTIVE_Base_Tracker_GA_AM_AO.COUNT) as GA_COUNT " 
esql = esql & "from MAPPING_MONTH A " 
esql = esql & "left outer join MAIL_ACTIVE_Base_Tracker_GA_AM_AO B " 
esql = esql & "on  A.DT = B.DATE " 
esql = esql & "where MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE = N'" & FName & "' " 
sql = esql & "group by MAIL_ACTIVE_Base_Tracker_GA_AM_AO.CIRCLE " 

RS.Open esql, CN, adOpenStatic, adLockReadOnly 

變化:

  1. RS.Open線周圍esql刪除括號。
  2. 取出構造T-SQL語句
  3. 交流你的T-SQL內"'括號內包含的文件名的文本。