【问题标题】:Access Query Parameter Filtering Form访问查询参数过滤表
【发布时间】:2020-07-13 20:00:54
【问题描述】:

我正在从名为 cboOpeningType 的组合框中过滤名为 sfrWorklistFilter 的表单。记录源来自表单上的嵌入式查询。如果我从组合框中进行选择,则过滤器可以使用以下代码正常工作:

Forms![sfrWorklistFilter]![cboOpeningType]

但是我需要在没有选择的情况下返回所有记录,在这种情况下我使用以下代码:

Like Forms![sfrWorklistFilter]![cboOpeningType]  & "*"

过滤器不会给出完全匹配,而是给出以组合框上的字母开头的所有记录。

我需要记录的完全匹配,或者如果没有选择所有记录。

有什么建议吗?

【问题讨论】:

  • 困惑?没有选择时,为什么组合框会选择一个字母?
  • 我想我现在明白你的意思了 - 你正在尝试设置一个固定的 Filter 属性 - 不是在 cboOpeningType AfterUpdate 事件的 VBA 代码中,对吗?
  • @dbmitch 你是对的,我没有在 VBA 中设置过滤器属性。我试图使用组合框值在表单的嵌入式查询中设置 SQL。我有三个组合框,并试图根据它们的值过滤三个字段。如果我不输入值,我想返回该字段的所有记录。组合框的行源将单个字母选择作为值之一。 When that letter is selected all records that begin with that letter.当组合框中没有任何内容时,我根本没有得到任何结果。
  • 您在上面显示的内容仍然没有意义。您的表单过滤器中至少需要一个字段 - 您没有。这显然必须随着每个组合框而改变。
  • @dbmitch 我也找到了。我花了一点时间。 “过滤器”效果很好。谢谢你的时间。

标签: ms-access vba ms-access-2013


【解决方案1】:

编辑删除双引号

这应该可行 - 您可以对其他字段/组合框搜索做同样的事情

Like IIf([Forms]![sfrWorklistFilter]![cboOpeningType]<>"",[Forms]![sfrWorklistFilter]![cboOpeningType],"*")

【讨论】:

    猜你喜欢
    • 2016-09-09
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多