Ms access 2007 Where子句中带有变量的查询

Ms access 2007 Where子句中带有变量的查询,ms-access-2007,Ms Access 2007,我有一个带有列表框的表单,我想用查询结果填充该表单(作为Access查询,而不是在VBA中)。此查询具有基于主键的Where子句。为了理解这个概念,我硬编码了PK的值(在查询的条件中)——这很有效。我真正需要做的是创建一个变量,使值取决于应用程序中发生的事情。谢谢 您可以在查询的WHERE子句中调用全局函数 您将用VBA编写一个函数,例如 Public Function ValueForQuery() as Long ValueForQuery = x 'x will be the val

我有一个带有列表框的表单,我想用查询结果填充该表单(作为Access查询,而不是在VBA中)。此查询具有基于主键的Where子句。为了理解这个概念,我硬编码了PK的值(在查询的条件中)——这很有效。我真正需要做的是创建一个变量,使值取决于应用程序中发生的事情。谢谢

您可以在查询的
WHERE
子句中调用全局函数

您将用VBA编写一个函数,例如

Public Function ValueForQuery() as Long
   ValueForQuery = x 'x will be the value you want to pass from the app
End Function
在查询中:

SELECT * FROM SomeTable WHERE PK = ValueForQuery()

谢谢-我试试看。我想可能有一种完全脱离VBA的方法。我有一个小问题。只是为了确保我理解-在您上面的查询中,这可以在“访问查询”的条件中吗?也就是说,不是在VBA中嵌入SQL。因为当我这样做并运行时,它会提示我输入一个值,其中包含一个名为“输入参数值”的框和字段(函数)名称。我已经做了一些调整,但现在的问题是查询似乎无法识别函数。打开查询时,我得到消息:“表达式中'xyz'中的未定义函数”。但是,当只打开查询本身时,这可能是有意义的。这是否意味着该函数不是“全局的”?玩游戏让我走得更远了一点。我认为我没有真正的全局功能。它似乎与一种形式有关。我发现了如何创建“标准模块”。我模拟了这个,以获得一个带有函数思想的POC,所以我可能有一个后续问题。