Filter setzen über mehrere Felder

27/02/2010 - 21:13 von Frank Krüger | Report spam
Hallo,

Ich suche in einem Formular nach Auftragsnummern.
Eigendlich filtere ich diese.
Ist es möglich die im Suchfeld eigegebenen Daten in mehren Feldern zu suchen
und so zu filtern.
Etwa im Feld "Feld1" oder "Feld2" oder "Auftrag".
Im Feld "Auftrag" suche (Filtere) ich mit folgender Prozedur:

Private Sub S_Auftrag_Click()

Dim myarray As Variant
Dim sFilter As String
Dim i As Long

myarray = Split(Me.f_Auftrag, " ")
For i = LBound(myarray) To UBound(myarray)
sFilter = sFilter & " AND ([Auftrag] LIKE '*" & myarray(i) & "*')"
Next i

If Len(sFilter) > 0 Then
sFilter = Mid(sFilter, 6)
Form.Filter = sFilter
Form.FilterOn = True
End If
Form.FilterOn = True
End Sub

gefunden hier im Forum.
 

Lesen sie die antworten

#1 Peter Doering
27/02/2010 - 21:44 | Warnen spam
Hallo,

Frank Krüger wrote:

Ich suche in einem Formular nach Auftragsnummern.
Eigendlich filtere ich diese.
Ist es möglich die im Suchfeld eigegebenen Daten in mehren Feldern zu suchen
und so zu filtern.
Etwa im Feld "Feld1" oder "Feld2" oder "Auftrag".
Im Feld "Auftrag" suche (Filtere) ich mit folgender Prozedur:

Private Sub S_Auftrag_Click()

Dim myarray As Variant
Dim sFilter As String
Dim i As Long

myarray = Split(Me.f_Auftrag, " ")
For i = LBound(myarray) To UBound(myarray)
sFilter = sFilter & " AND ([Auftrag] LIKE '*" & myarray(i) & "*')"
Next i

If Len(sFilter) > 0 Then
sFilter = Mid(sFilter, 6)
Form.Filter = sFilter
Form.FilterOn = True
End If
Form.FilterOn = True
End Sub



Was hindert dich daran, verschiedene Feldnamen in den Filterausdruck
aufzunehmen?

sFilter = sFilter & " AND ([Auftrag] LIKE '*" & myarray(i) & "*'" & _
" OR Feld1 LIKE '*" & myarray(i) & "*'" & _
" OR Feld2 LIKE '*" & myarray(i) & "*')"

Alternativ kannst du in der Abfrage, die dem Formular zugrunde liegt, ein
zusaetzliches Feld einfuegen, das aus den zu durchsuchenden Feldern
besteht:

SELECT Feld1, Feld2, Auftrag, ... , Feld1 & Feld2 & Auftrag AS SuchFeld
FROM ...

und den Filter wendest du auf dieses Feld an.

sFilter = sFilter & " AND SuchFeld Like '*" & myarray(i) & "*'"

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen