我正在尝试在子表单上使用过滤器。 我在主窗体上有一个组合框。
如果在组合框中选择了名称并点击搜索按钮,我希望相应的数据以子表格形式显示。
如果我将组合框的行源设置为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 & "'"
,但结果没有变化。
任何建议都非常感谢。
答案 0 :(得分:0)
好的,您的组合框已定义了两列,因此您的查询:
SELECT ID, [Name] FROM table is fine
但是要使用该语法,您需要引用组合框的第二列(基于零)。
.Filter = "[name]='" & me.comboname.column(1) & "'"