在子表单上使用过滤器

时间:2015-06-30 09:10:42

标签: combobox access-vba box

我正在尝试在子表单上使用过滤器。 我在主窗体上有一个组合框。

如果在组合框中选择了名称并点击搜索按钮,我希望相应的数据以子表格形式显示。

如果我将组合框的行源设置为SELECT [table].[name] FROM table,则组合框中不会显示这些值,但我使用以下代码在子窗体中获得所需的数据。

Private Sub SearchName_Click()
    If IsNull(Me.ComboName.Value) Then
        Me.SubList.Visible = False
        MsgBox "Please select name。", vbOKOnly + vbCritical
    Else
         Me.SubList.Visible = True
         Call frm_Enter

    End If End Sub

Private Sub frm_Enter()
Dim CustName As String
CustName = Me.ComboName.Value
With Me.SubList.Form
    .Filter = "[name]='" & CustName & "'" 
    .FilterOn = True
End With
End Sub

如果我将组合框的行源更改为SELECT [table].[Id], [table].[name] FROM table,则会显示组合框中的值,但是我没有在子表单中获得所需的结果。

我尝试将过滤器更改为.Filter = "[Id]='" & CustName & "'",但结果没有变化。 任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

好的,您的组合框已定义了两列,因此您的查询:

SELECT ID, [Name] FROM table is fine

但是要使用该语法,您需要引用组合框的第二列(基于零)。

.Filter = "[name]='" & me.comboname.column(1) & "'"