2012-04-09 56 views
1

所以我有一個查詢,如下所示,它運行在一個參數上。使用VBA設置查詢的參數

我想知道是否有方法使用VBA設置查詢參數。我目前有大約40個查詢都完全相同,除了產品ID,因此我有40個報告以及...如果我有一個查詢,我仍然必須寫出VBA中productid的代碼,但我可以使用一個報告而不是那麼多。

生活會只用一個查詢和一個報告更容易和有VBA設置的參數,如用戶不知道產品ID

SELECT TblTotalSale.ProductID, TblProduct.Description, TblTotalSale.Size, TblTotalSale.SalePrice, TblTotalSale.Day 
FROM TblProduct INNER JOIN TblTotalSale ON TblProduct.ProductID = TblTotalSale.ProductID 
WHERE (((TblTotalSale.ProductID)=[])); 

的VBA

Private Sub IPA_Click() 

DoCmd.OpenReport "RptProduct", acViewReport, , [TblTotalSale.ProductID="5"] 

End Sub 

我也試過tblTotalSale.ProductID =「5」 我知道我在使用SQL,我應該使用VBA ...

謝謝

山姆

回答

6

請勿爲報表和表單的sql語句包含參數。使用DoCmd對象的OpenForm或OpenReport方法的Where參數。

DoCmd.OpenReport Method

+0

所以除去在SQL和在VBA寫入 DoCmd.OpenReport 「RptProduct」 的地方,acViewReport,TblTotalSale.ProductID = 5 ? – 2012-04-09 16:20:51

+2

用引號'「TblTotalSale.ProductID = 5」'或文本,'「AText ='ABC'」' – Fionnuala 2012-04-09 16:22:15