我正在尝试根据子窗体上文本框中键入的内容过滤子窗体上显示的记录。子表单称为Users,它位于Group表单上。在Users子表单上有一个名为txtFilter的文本框。如果我在txtFilter中输入“W”,我只想显示用户的lastName或userName以“W”开头的记录。当我继续键入W ... A ... L我只想要其姓氏或用户名以“Wal”开头的用户出现。
我有一些模糊的想法,我必须使用记录集属性或子窗体的serverFilter来做到这一点,但我真的不知道该怎么做。请帮帮我!
答案 0 :(得分:1)
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
答案 1 :(得分:0)
快速更新Access 2013的@dmr响应:
修改后的回复:
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