@ג-ינג-י @OdedDvir
אני משתמש עם הקוד הזה. בכל חיפושי הטפסים, נראה לי הרבה יותר קל.
בעת יציאה מתיבת החיפוש שכאן הוא txtFind הוא מבצע את החיפוש.
(אפשר להכניס אותו תוך כדי כתיבה ב'בעת שינוי', אבל בהרבה נתונים הוא ממש מאיט את העבודה)
והטופס משנה אצלי נקרא fsubForm
במקרה שאין טופס משנה, רק רוצים חיפוש בטופס הנוכחי, צריך להוריד את הfsubForm בכל המופעים
On Error GoTo err
Dim ctl As Control
Dim strFilter As String
If Me.fsubForm.SourceObject = "" Then Exit Sub
If Len(Me.txtFind.text) < 1 Then
Me.fsubForm.Form.FilterOn = False
Exit Sub
Else
End If
For Each ctl In Me.fsubForm.Form.Controls 'Me.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then 'רק פקדי טקסט
If Left(ctl.ControlSource, 1) <> "=" Then 'דלג על תיבות טקסט מחושבים
strFilter = strFilter & "[" & ctl.ControlSource & "] Like " & Chr(34) & "*" & txtFind.text & "*" & Chr(34) & " OR "
End If
End If
Next
strFilter = Left(strFilter, Len(strFilter) - 4)
Me.fsubForm.Form.Filter = strFilter
Me.fsubForm.Form.FilterOn = True
Exit Sub
err:
Me.fsubForm.Form.Filter = ""
Me.fsubForm.Form.FilterOn = False