【发布时间】:2014-12-14 01:06:44
【问题描述】:
我正在尝试使用 IN() 条件内的临时变量过滤查询。临时变量包含一个文本值列表。我正在使用 Access 2010 中的宏生成器工具。
假设我有一个查询 qryMain 产生:
Field1 Field2
1 A
4 B
2 C
3 D
没有WHERE 子句。使用子句
WHERE [tblMain].[Field2] IN([TempVars]![tmpField2])
过滤查询,想要的结果是
Field1 Field2
1 A
4 B
当tmpField2 设置为"A,B"。我使用 SetTempVar 使用表单frmMain 中的单击事件设置tmpField2,并重新查询基于qryMain 的子表单/子报表对象sfrmMain。这是通过 MS 宏生成器完成的,而不是 VBA。
不幸的是,重新查询sfrmMain 会产生一个空表,而不是预期的结果。请注意,如果我将tmpField2 设置为"A",则重新查询宏将按预期工作。
我尝试了多种初始化tmpField2 的变体,基于Access 的double quote requirements,但仍然没有成功。我的问题类似于这个尚未回答的question,但我的问题涉及在WHERE 子句内的IN() 语句中传递临时变量,而不使用VBA。
【问题讨论】:
标签: ms-access macros ms-access-2010