为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2019-10-11 15:07:35
我有一个查询这是相当大的,在加盟十几张桌子,我想拉回来基于一个id字段记录(如:between nStartID and nEndID)。我创建了两个参数并将其作为标准进行测试,并且它们可以正常工作。问题是,我需要从该主查询运行一个插入查询,并且在主查询中需要它们所在的参数。因此,我需要以编程方式将参数传递给它。任何人都知道如何做到这一点?谢谢。
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

我刚刚对此进行了测试,它可以在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]的参数,即使它们实际上是[MemberSubset]的参数,也可以从VBA代码运行[MemberSubsetUpdate]。这些参数值“滴流”到需要的位置,并且该查询确实可以在没有人工干预的情况下工作:


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


查看完整回答
反对 回复 2019-10-11
?
POPMUISE

TA贡献1765条经验 获得超5个赞

尝试使用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


查看完整回答
反对 回复 2019-10-11
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

非常感谢您提供有关使用QueryDefs集合的信息!我一直在想这个问题。

我通过使用包含查询参数的表以不使用VBA的不同方式进行了此操作。

例如:从QueryParameters,a_table中选择a_table.a_field,在a_table.a_field与QueryParameters.a_field_min和QueryParameters.a_field_max之间

其中QueryParameters是具有两个字段a_field_min和a_field_max的表

如果您在GROUP BY子句中包含查询参数字段,并且在HAVING子句中的参数字段中包含FIRST运算符,则它甚至可以与GROUP BY一起使用。


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 621 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信