Jav*_*Jav 34 parameters ms-access vba ms-access-2010
我有一个查询这是相当大的,在加盟十几张桌子,我想拉回来基于一个id字段记录(如:between nStartID and nEndID
).
我创建了两个参数并将它们作为标准进行测试,它们运行良好.
问题是,我需要在主查询中运行来自此主查询的插入查询,并且需要它们所在的参数.所以,我需要以编程方式将参数传递给它.
任何人都知道如何做到这一点?
谢谢.
Gor*_*son 60
我刚测试了这个,它在Access 2010中有效.
假设您有一个带参数的SELECT查询:
PARAMETERS startID Long, endID Long;
SELECT Members.*
FROM Members
WHERE (((Members.memberID) Between [startID] And [endID]));
Run Code Online (Sandbox Code Playgroud)
您以交互方式运行该查询,并提示您输入[startID]和[endID].这是有效的,所以你将该查询保存为[MemberSubset].
现在,您可以基于该查询创建UPDATE查询:
UPDATE Members SET Members.age = [age]+1
WHERE (((Members.memberID) In (SELECT memberID FROM [MemberSubset])));
Run Code Online (Sandbox Code Playgroud)
您以交互方式运行该查询,并再次提示您输入[startID]和[endID]并且它运行良好,因此您将其保存为[MemberSubsetUpdate].
您可以通过将[startID]和[endID]值指定为[MemberSubsetUpdate]的参数来从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
Run Code Online (Sandbox Code Playgroud)
小智 22
尝试使用QueryDefs.使用参数创建查询.然后使用这样的东西:
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("Your Query Name")
qdf.Parameters("Parameter 1").Value = "Parameter Value"
qdf.Parameters("Parameter 2").Value = "Parameter Value"
qdf.Execute
qdf.Close
Set qdf = Nothing
Set dbs = Nothing
Run Code Online (Sandbox Code Playgroud)