【问题标题】:Access query - filter related issues访问查询 - 过滤相关问题
【发布时间】:2017-10-24 21:40:58
【问题描述】:

我对 ms-access 查询有疑问。我想要一个审查面板,我们可以根据需要使用多个过滤器快速切换项目。 因此,我创建了访问查询并将参数放在要过滤的列中归档的条件下。参数取自 Review_Form 中的字段。如果我输入一个特定的数字,但我不知道输入什么来接收所有记录而不过滤它们,它就可以工作。我尝试了几种不同的方法,但没有成功。我用过例如以下链接中显示的示例: https://support.office.com/en-us/article/Apply-criteria-to-text-values-202548b6-b065-4387-800b-2456a7099bca 整个想法显示在附图中:

如果您有任何建议和解决方法的想法,请告诉我。 谢谢, 彼得

Andre 提供的解决方案有效,但前提是有 1 个过滤器。就我而言,我想使用更多过滤器。尝试将任何字符串值应用为 (Is Not Null) 或 (Like) 以获取特定过滤器的所有记录,它会像以前一样以错误结束。 换句话说:如果我直接在访问查询字符串中输入,例如(不是 Null)它会起作用,但是如果我尝试使用 ViewProject 表单中的字段来代替数值字符串,则会导致错误。 你有什么建议可以克服吗?

【问题讨论】:

  • 您遇到的问题是操作员问题。如果您将状态更改为星号“*”,则必须使用“Like”运算符而不是“=”运算符。

标签: sql vba ms-access


【解决方案1】:

一个更简单的解决方案是当状态过滤器 = 3 时使条件始终为 TRUE

像这样在 SQL 视图中更改 WHERE 条件:

WHERE ((Status.id_status = Forms!ViewProject!pstatus1) OR (Forms!ViewProject!pstatus1 = 3))

那么您就不需要在 VBA 中进行翻译了。也可以直接在查询中引用T_project_s1,根本不需要sub。

【讨论】:

  • 这回答了我的问题。我只需要花一点时间来理解它。我的意思是为什么这个条件总是正确的?
  • 但是,当只有一个过滤器时,它的工作原理与我描述的一样。有没有办法适用于多个过滤器?
  • 对于多个过滤器,使用 AND 附加附加条件。请参阅allenbrowne.com/ser-62.html --> “使用查询代替”。或者,使用 VBA(相同链接)构建过滤器。
  • 谢谢安德烈。我现在面临的问题有准确的描述,并给出了很好的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
相关资源
最近更新 更多