2014-07-22 52 views
0

我有宏如何在查詢提示參數值時打開記錄集?

Dim db As DAO.Database 
Dim rs As DAO.Recordset 

Set db = CurrentDb 
Set rs = db.OpenRecordset("SELECT DISTINCT WORKSTATION FROM [qry EngineHoursSummaryA]") 

線RS = db.OpenRecordset訪問。 。 。,引發錯誤「運行時錯誤」3061':參數太少,期望2「。它會拋出這個錯誤,因爲[qry EngineHoursSummaryA]調用另一個查詢,它有兩個參數。當我正常運行[qry EngineHoursSummaryA]訪問時,一切正常,因爲Access顯示兩個輸入框供我放入參數。

但是,當我在我的VBA宏中引用查詢時,Access不顯示這兩個輸入框。我該怎麼辦?

回答

2

要通過VBA提供這些參數,您需要使用QuerfDef及其Parameters集合。您的查詢也需要是適當的查詢,而不是臨時查詢。即您需要定義SELECT DISTINCT WORKSTATION FROM [qry EngineHoursSummaryA]作爲自己的查詢。那麼你可以做到這一點

Dim rs As DAO.Recordset 
Dim db As DAO.Database 
Dim qdef As DAO.QueryDef 
Set db = CurrentDb 
Set qdef = db.QueryDefs("YourQueryName") 
qdef.Parameters.Refresh 
qdef.Parameters("yourParameterName") = "value to Supply" 'No quotes if a number and #s if a date. 
Set rs = qdef.OpenRecordset 
+0

謝謝!這工作。沒有足夠的代表將您的答案投票或選擇它。 :( – johnsimer

+0

@ user2453293你總是可以接受答案並接受你自己的問題,實際上接受這個應該會給你一些代表 – Brad