2013-06-30 164 views
0

我有一个带有列表框的表单,我想用查询结果填充(作为Access Query,而不是VBA)。该查询具有基于主键的Where子句。为了理解这个概念,我对PK(在查询条件中)的价值进行了硬编码 - 而且这种工作起作用了。我真正需要做的是制作一个变量,以便该值将取决于应用中发生的事情。谢谢!查询变量Where Where子句

回答

1

您可以在查询的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() 
+0

谢谢 - 我想试试。我虽然可能有办法完全在VBA之外完成。 – DaveL

+0

我有一个小问题。只是为了确保我明白 - 在上面的查询中,是否可以在“访问查询”中的条件中?也就是说,VBA中没有嵌入SQL。因为当我这样做并运行时,它会提示我输入一个名为“输入参数值”和字段(函数)名称的值。 – DaveL

+0

一直在调整一下,但现在我遇到的问题是查询似乎无法识别该函数。当打开查询时,我得到msg:“在'xyz'表达式中的未定义函数。但是,当仅仅打开查询时,这可能是有意义的。这是否表明这个功能可能不是'全球性'? – DaveL