组合框的行源查询中的 where 子句

Posted

技术标签:

【中文标题】组合框的行源查询中的 where 子句【英文标题】:where clause in a row source query for combo box 【发布时间】:2014-12-12 19:12:31 【问题描述】:

我正在尝试创建一个组合框,其行源是查询。我想根据表单上控件之一中的某个值(可能会根据当前记录更改)或固定值(使用应用程序的用户名)过滤查询结果

假设我只想显示允许用户查看的项目

我想列出当前所选项目的任务。

我将 where 子句用作: where cmb_name.colname = me.control 这不起作用。

我尝试在组合框的行源中的查询中以及组合框调用的查询本身中插入此 where 子句 - 无论如何都不起作用。

最佳做法是什么?

【问题讨论】:

【参考方案1】:

我会将其从查询移至 VBA 代码。使用 Form current 方法,您将能够做到这一点。

Private Sub Form_Current()
    Me.comboBoxName.RowSource = "SELECT theFieldA, theFieldB FROM theTable " & _
                                "WHERE theConditionFieldName = '" & Me.yourControlName & "'"

    'If the Me.yourcontrolName is a number value, please remove the single quotes in the above statement.

    Me.comboBoxName.ReQuery
End Sub

这样可以更好地控制选择。

【讨论】:

【参考方案2】:

将表单的 Filter 属性设置为 colname = cmb_name,假设 cmb_name 是组合框,colname 是要过滤的列。 (过滤器不需要WHERE 关键字。)

【讨论】:

以上是关于组合框的行源查询中的 where 子句的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据库查询中填充组合框?

使用宏过滤带有组合框的表单 - MS Access

将两个选项按钮与单个组合框链接,用于不同的行源[关闭]

在列表框中显示所有记录

如何按常用的组合框排序?

组合框的访问选择查询并不总是评估复选框值