Ms access 如何正确使用多个参数创建查询设计条件?

Ms access 如何正确使用多个参数创建查询设计条件?,ms-access,ms-access-2016,Ms Access,Ms Access 2016,我试图创建一个查询,提示用户输入单个字符或按enter键全部输入。我可以通过此查询执行此操作: 类似[输入区域(1、2、3、4、5、20、21、P、A、F、C、T、B、E、S)或按Enter键输入所有区域]&“*” 但是,当用户说“OK”并请求all时,我需要查询不包括20和21。 我尝试在末尾添加或不喜欢(“20”、“21”)或(不喜欢“20”或不喜欢“21”),但我得到了一个错误 我觉得这很简单,但我搞不懂顺序 提前感谢。使用带有2、20、21等选项的数字标准意味着无法使用通配符连接,因此选

我试图创建一个查询,提示用户输入单个字符或按enter键全部输入。我可以通过此查询执行此操作:
类似[输入区域(1、2、3、4、5、20、21、P、A、F、C、T、B、E、S)或按Enter键输入所有区域]&“*”

但是,当用户说“OK”并请求all时,我需要查询不包括20和21。 我尝试在末尾添加
或不喜欢(“20”、“21”)
(不喜欢“20”或不喜欢“21”)
,但我得到了一个错误

我觉得这很简单,但我搞不懂顺序


提前感谢。

使用带有2、20、21等选项的数字标准意味着无法使用通配符连接,因此选择2时不会检索20和21

在查询中使用带有那个长语句的弹出式输入提示看起来很混乱

LIKE IIf([Enter Zone (1, 2, 3, 4, 5, 20, 21, P, A, F, C, T, B, E, S) or Hit Enter for All] <> "", [Enter Zone (1, 2, 3, 4, 5, 20, 21, P, A, F, C, T, B, E, S) or Hit Enter for All], "*")

允许返回与输入值匹配的记录,或者如果未输入任何内容,则返回全部记录。这并不能解决将20和21从全部中排除的问题—为此,我建议使用VBA解决方案,该解决方案可构建筛选条件并应用于表单或报表。

该参数中的任何内容都不会阻止用户输入“X”或“&”或任何字符组合,查询仍将运行,但不会返回记录。此外,通过使用通配符,“2”项将返回2、20、21,而不仅仅是2。除此之外,我认为在查询对象中构建条件条件条件的尝试不会成功。建议在“搜索”表单后面使用VBA来构建标准并应用于表单或报告。可以验证表单上控件的用户输入。至少使用表单进行用户输入,并将查询引用表单控件作为参数输入。弹出式输入无法验证。即使使用表单上的引用控件,我认为查询中的条件参数化即使不是不可能的,也是很困难的。运算符(,LIKE,NOT LIKE)不能是动态的,如果我的问题不可能,那么请至少告诉我如何在不显示“20”和“21”的情况下修复“2”的条目。如果用户单击“确定”,我仍然需要它来显示所有内容(无论是否包括20和21)。如何显示在我提供的链接中,但我已使用您的案例为您提供了答案。
LIKE IIf(NOT [Forms!formname!controlname] IS NULL, [Forms!formname!controlname], "*")