gpt4 book ai didi

vba - 是否可以在 Microsoft Access 更新查询中以编程方式传递参数?

转载 作者:行者123 更新时间:2023-12-01 16:05:13 26 4
gpt4 key购买 nike

我有一个相当大的查询,连接了十多个表,并且我想根据 id 字段拉回记录(例如:nStartID 和 nEndID 之间 )。

我创建了两个参数并将它们作为标准进行了测试,它们工作得很好。

问题是,我需要从此主查询运行插入查询,并且需要主查询中参数的位置。因此,我需要以编程方式向其传递参数。

有人知道如何做到这一点吗?

谢谢。

最佳答案

我刚刚对此进行了测试,它可以在 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]。

您可以通过将 [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

关于vba - 是否可以在 Microsoft Access 更新查询中以编程方式传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com