【问题标题】: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。将代码格式化为有问题的代码并 * 显示。

标签: vba ms-access wildcard


【解决方案1】:

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

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

【讨论】:

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