3
我正在尝试在子窗体上使用筛选器。 我在主窗体上有一个组合框。在子窗体上使用筛选器
如果在组合框中选择了名称并点击搜索按钮,我希望相应的数据显示在子表单中。
如果我将组合框的行源设置为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 & "'"
,但结果没有变化。 任何建议,非常感谢。
尝试选择除id以外的任何其他列,问题是否存在? – tharif
您是否尝试过运行另一个查询来获取名称?类似于'Select name From table Where Id = CustName',因为你在'CustName'中的值是Id。 – EngJon
最简单的方法是将组合框的行源更改为:'SELECT [table]。[name],[table]。[name] FROM table' - 是同一列两次。组合框似乎被配置为将第一列用作comboname.value,将第二列用作显示内容。另一种方法是查看组合框的属性,可能会有一个列宽度属性,将第一列设置为0,因此它不显示。它可能看起来像“0; 2.5”或“0,2.5”或“,2.5”或类似的东西。 – GregHNZ