引用表单输入时在查询条件中使用通配符

Posted

技术标签:

【中文标题】引用表单输入时在查询条件中使用通配符【英文标题】:Using Wildcard in query criteria when referencing form input 【发布时间】:2020-05-14 17:12:24 【问题描述】:

我正在尝试使用表单根据用户选择的条件(通过一系列 24 个组合框)启动和返回查询结果。因此,如果用户从下拉列表中进行选择,则子表单将使用所选值作为过滤器重新查询并返回查询结果。我需要用户能够根据需要选择尽可能多或尽可能少的标准。我有这件作品使用以下内容:

在填充子表单的查询中,每个条件都有:Like "*" & [Forms]![formname]![cobx_name] & "*"

就像我说的,这行得通。问题在于标准之一。有一个字段包含一个连续的数值(从 1 到超过 11,000)。当我选择 7 时,查询返回数值为 7、17、27、37 等的记录。我需要查询使用通配符并在该特定组合框为空时返回所有记录,但仅返回与用户选择的值相等的一条记录(例如,仅返回值为 7 的记录)。

【问题讨论】:

语句中有*...编者一定忽略了...所以Like语句的引号之间有*。 LIKE 和通配符用于文本数据,而不是数字。我从不使用动态参数化查询。我更喜欢 VBA 来构建过滤条件并应用于表单或报告。查看allenbrowne.com/ser-62.html。将代码格式化为有问题的代码并 * 显示。 【参考方案1】:

LIKE 和通配符用于文本而不是数字。如果必须使用动态参数化查询,请考虑:

BETWEEN Nz([Forms]![formname]![cobx_name], 0) AND Nz([Forms]![formname]![cobx_name], 99999)

【讨论】:

对不起,让我澄清一下。值是数字,但字段是短文本数据类型。 6 月 7 日,谢谢。这完美地工作并且允许所有其他组合框标准也保持按预期工作。非常感谢您的帮助! 如果答案解决了问题,可以将其标记为已接受并且点赞也不错。为什么是字段文本类型? 该字段的数值是原始数据集中的唯一ID。它永远不需要任何类型的计算,因此以文本的形式被引入数据库。我确实接受了答案并投了赞成票,但它说我的声誉水平不够高,无法更改公开显示的帖子分数。但它说投票是记录在案的。我必须努力使我的声誉至少达到 15 才能有效投票。再次感谢您在这方面的帮助!

以上是关于引用表单输入时在查询条件中使用通配符的主要内容,如果未能解决你的问题,请参考以下文章

mysql模糊查询固定某个字符

DB2 参数通配符

Oracle条件查询,分页查询

MQTT通配符

如何定义在子查询中引用通配符表的 BQ 视图?

如何使用用户输入和通配符编写 sql 查询