首页 > 解决方案 > 基于在一个文本字段中具有多个条件的表单进行查询

问题描述

我对访问还很陌生,我正在开发一个数据库来管理几种产品的材料清单 (BOM)。我想创建一个表单,用户可以在其中输入组件名称列表,以查看这些组件的使用位置。

基于一个词运行查询很简单,但我正在努力将其扩展到多个词。我希望用户输入由新行分隔的组件,如下所示:

Item1
Item2
Item3
...

如果我按原样使用文本字段,则查询将找不到任何内容,因为它将文本字段作为一个整体而不是逐行使用。

我试图将文本字段处理为 ListBox,因为我认为它会像数组一样处理,但它没有,<value>因此它不会返回任何搜索结果。

我的下一个尝试是使用第二个文本字段,我可以在其中将信息格式化为格式"Item1";"Item2";"Item3",以便我可以在in语句中使用它。

如果我直接放:

in ("Item1";"Item2";"Item3")

在查询条件中,它将按预期运行,但是如果我尝试像这样引用HelpText(其中包含:):"Item1";"Item2";"Item3"

In ([Forms]![Search_mult_component]![HelpText])

然后我没有得到任何结果。我也尝试过格式化文本以包含括号,如下所示("Item1";"Item2";"Item3")

正如我所提到的,我刚刚开始了解 Access,因此我不确定这是否是一种好的做法,或者我是否试图强制一些可以通过稍微不同的方法以简单的方式完成的事情。

提前感谢您的支持!

标签: ms-access

解决方案


你不能。就像表名和字段名一样,IN 语句的值字符串必须在查询运行之前出现。

您唯一的选择是动态编写 SQL 字符串,例如,创建一个临时查询,将 SQL 传递给该查询。


推荐阅读