これをテストしたところ、Access 2010 で動作します。
パラメータを含む SELECT クエリがあるとします。
PARAMETERS startID Long, endID Long;
SELECT Members.*
FROM Members
WHERE (((Members.memberID) Between [startID] And [endID]));
そのクエリを対話的に実行すると、[startID] と [endID] の入力を求められます。これでうまくいくので、そのクエリを [MemberSubset] として保存します。
次に、そのクエリに基づいて UPDATE クエリを作成します。
UPDATE Members SET Members.age = [age]+1
WHERE (((Members.memberID) In (SELECT memberID FROM [MemberSubset])));
そのクエリを対話的に実行すると、[startID] と [endID] の入力を求めるプロンプトが再度表示されますが、うまく機能するので、[MemberSubsetUpdate] として保存します。
[MemberSubsetUpdate] のパラメーターとして [startID] と [endID] の値を指定することで、VBA コードから [MemberSubsetUpdate] を実行できますが、これらは実際には [MemberSubset] のパラメーターです。これらのパラメーター値は、必要な場所まで「細流」になり、クエリは人間の介入なしで機能します。
Sub paramTest()
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("MemberSubsetUpdate")
qdf!startID = 1 ' specify
qdf!endID = 2 ' parameters
qdf.Execute
Set qdf = Nothing
End Sub