2012-10-26 12 views
2

可能重複:
GROUP BY using parameters in SQLOLEDB命名參數和分組依據:「?」將無法正常工作

下面是一個.xlsx文件的OLEDB查詢我的SQL字符串

szSQL = "SELECT cawo_wo_id, wows_step_id, wows_description, wffj_cur_state_desc, cawo_wo_id & wows_step_id AS p5_id FROM [" & SourceSheet$ & "$" & sourceRange$ & "] WHERE [wows_description] like '%ECR%';" 

我明白命名的參數不被OLEDB支持,但爲什麼它不能與「group by」一起使用「?」作爲參數?

像這樣:

szSQL = "SELECT cawo_wo_id, wows_step_id, wows_description, wffj_cur_state_desc, cawo_wo_id & wows_step_id AS p5_id FROM [" & SourceSheet$ & "$" & sourceRange$ & "] WHERE [wows_description] like '%ECR%' GROUP BY ?;" 

感謝您的幫助。

+0

我試圖從字段刪除重複我cread p5_id。這就是爲什麼我使用group by。 –

+0

我不知道一種SQL語言,它可以讓你使用組中的參數。 – StingyJack

+0

@Stingyjack已經提到了無效的SQL。但是,關於您的參數問題,如果您想要使用基於?的參數,則必須使用ODBC。另一種方法是,如果只能通過OLEDB連接,則編寫VBA代碼以添加/編輯參數。 – ExactaBox

回答

2

這樣做會將您發送的值作爲參數值進行分組,並且不允許對字面值進行分組。

如果您想動態地在不同的字段上分組,您必須動態創建查詢,而不是將字段名稱放在參數中。