我知道您可以通过VBA命令删除临时变量:tempvars.remove "variablename"
但是这实际上并没有从查询本身中删除该变量。因为我已经构建了一个查询,并且在设计视图中,临时变量被用于"标准"对于查询的部分,有没有办法通过VBA从查询本身中删除该临时变量或返回所有可能的值?
是否可以将临时变量设置为"显示所有值"基本上删除指定的标准?
我正在使用所有绑定表单,这就是为什么我不动态设置查询。
答案 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。