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