Forms 根据在子窗体的文本框中键入的内容筛选子窗体
我试图根据子窗体上文本框中键入的内容筛选子窗体上显示的记录。子窗体称为用户,它位于组窗体上。在用户子窗体上有一个名为txtFilter的文本框。如果我在txtFilter中键入“W”,我只想显示用户的姓氏或用户名以“W”开头的记录。当我继续键入W…A…L时,我只希望显示姓氏或用户名以“Wal”开头的用户Forms 根据在子窗体的文本框中键入的内容筛选子窗体,forms,filtering,ms-access-2003,subform,adp,Forms,Filtering,Ms Access 2003,Subform,Adp,我试图根据子窗体上文本框中键入的内容筛选子窗体上显示的记录。子窗体称为用户,它位于组窗体上。在用户子窗体上有一个名为txtFilter的文本框。如果我在txtFilter中键入“W”,我只想显示用户的姓氏或用户名以“W”开头的记录。当我继续键入W…A…L时,我只希望显示姓氏或用户名以“Wal”开头的用户 我有一些模糊的想法,我必须使用recordset属性或子表单的serverFilter来完成这项工作,但我真的不知道该怎么做。请帮帮我 Access 2013的@dmr响应快速更新: Priva
我有一些模糊的想法,我必须使用recordset属性或子表单的serverFilter来完成这项工作,但我真的不知道该怎么做。请帮帮我 Access 2013的@dmr响应快速更新:
Private Sub txtFilter_Change()
If Nz(Me.txtFilter.Text, "") = "" Then
Me.FilterOn = False
Me.txtFilter.SetFocus
Exit Sub
End If
Me.Filter = "lastName like '" + Me.txtFilter.Text + "%' or userName like '" & _
Me.txtFilter.Text + "%'"
Me.FilterOn = True
Me.txtFilter.SetFocus
Me.txtFilter.SelStart = Len(Nz(Me.txtFilter.Text, "")) + 1
End Sub
- 将“%”更改为“*”-Access使用星号表示通配符。可能要将其添加到文本之前,以及之后
- 您可能希望在表单属性中启用AllowAdditions,否则当过滤器返回零命中率时会出现焦点错误
- 这段代码将删除空格,这使得您无法在搜索中添加空格(因为您不能在不首先键入“two”的情况下键入“two words”)
Private Sub txtFilter_Change()
Dim search_text As String
search_text = Me.txtFilter
If Nz(Me.txtFilter.Text, "") = "" Then
Me.FilterOn = False
Me.txtFilter.SetFocus
Exit Sub
End If
Me.Filter = "lastName like '*" + Me.txtFilter.Text + "*' or userName like '*" & _
Me.txtFilter.Text + "*'"
Me.FilterOn = True
Me.txtFilter.SetFocus
Me.txtFilter.Value = search_text
Me.txtFilter.SelStart = Len(Nz(Me.txtFilter.Text, "")) + 1
End Sub
针对Access 2013对@dmr响应的快速更新:
- 将“%”更改为“*”-Access使用星号表示通配符。可能要将其添加到文本之前,以及之后
- 您可能希望在表单属性中启用AllowAdditions,否则当过滤器返回零命中率时会出现焦点错误
- 这段代码将删除空格,这使得您无法在搜索中添加空格(因为您不能在不首先键入“two”的情况下键入“two words”)
Private Sub txtFilter_Change()
Dim search_text As String
search_text = Me.txtFilter
If Nz(Me.txtFilter.Text, "") = "" Then
Me.FilterOn = False
Me.txtFilter.SetFocus
Exit Sub
End If
Me.Filter = "lastName like '*" + Me.txtFilter.Text + "*' or userName like '*" & _
Me.txtFilter.Text + "*'"
Me.FilterOn = True
Me.txtFilter.SetFocus
Me.txtFilter.Value = search_text
Me.txtFilter.SelStart = Len(Nz(Me.txtFilter.Text, "")) + 1
End Sub