我想根据放入文本框的数据过滤子表单。
如果Student ID
被完美输入,下面的代码将显示记录。
我想让我的过滤器显示Student ID
,First Name
或Last Name
以Me.Sort.Text
Private Sub Sort_Change()
If IsNull(Me.Sort.Text) Or Me.Sort.Text = "" Then
Me.Students_subform.Form.FilterOn = False
Else
Me.Students_subform.Form.FilterOn = True
Me.Students_subform.Form.Filter = "[Student ID] ='" & Me.Sort.Text & "'"
End If
End Sub
答案 0 :(得分:1)
听起来我觉得你需要一个包含3个Like
条件的过滤器表达式OR
' d。
例如,如果Me.Sort.Text
包含文本" foo" ,请构建一个过滤器表达式字符串,例如......
"[Student ID] Like 'foo*' OR [First Name] Like 'foo*' OR [Last Name] Like 'foo*'"
我在Access 2010中测试了此代码,并按照我认为您想要的方式过滤子窗体...
Private Sub Sort_Change()
Dim strFilter As String
With Me.Sort
If Len(.Text & vbNullString) > 0 Then
strFilter = "[Student ID] Like '" & .Text & _
"*' OR [First Name] Like '" & .Text & _
"*' OR [Last Name] Like '" & .Text & "*'"
End If
End With
Debug.Print "strFilter: " & strFilter '<- inspect this in Immediate window
' Ctrl+g will take you there
With Me.Students_subform.Form
If Len(strFilter) = 0 Then
.FilterOn = False
Else
.Filter = strFilter
.FilterOn = True
End If
End With
End Sub