从查询设计访问临时变量

时间:2015-05-07 16:08:41

标签: vba ms-access access-vba

我知道您可以通过VBA命令删除临时变量:tempvars.remove "variablename"但是这实际上并没有从查询本身中删除该变量。因为我已经构建了一个查询,并且在设计视图中,临时变量被用于"标准"对于查询的部分,有没有办法通过VBA从查询本身中删除该临时变量或返回所有可能的值?

是否可以将临时变量设置为"显示所有值"基本上删除指定的标准?

我正在使用所有绑定表单,这就是为什么我不动态设置查询。

1 个答案:

答案 0 :(得分:1)

您的TempVar子句中有一个引用WHERE的查询,与此类似...

WHERE some_field=[tempvars]![variablename]

稍后您删除TempVar ...

tempvars.remove "variablename"

但是,删除TempVar不会改变查询的SQL。您需要手动修改查询或编写VBA代码来修改它。

但这可能没有必要。删除TempVar后,任何引用其值的尝试都不会触发错误。相反,Access只给你Null。

您可以在查询设计中利用这一事实:

WHERE
    some_field=[tempvars]![variablename]
    OR
    [tempvars]![variablename] Is Null

[tempvars]![variablename]存在时,查询将仅返回 some_field 值与TempVar值匹配的行。

[tempvars]![variablename]消失时,Access会给你Null,这意味着所有行的第二个条件[tempvars]![variablename] Is Null都为True。