Funktion für Filterung in einem bestimmten Datumsbereich

23/02/2009 - 19:47 von Marion Hildebrandt | Report spam
Hallo NG,
ich möchte die Suchfunktion in meinen Formularen erweitern, indem ich
zusàtzlich zum Suchwort (ungebundenes Textfeld=“Search“) noch nach einem
Zeitbereich (ungebundene Textfelder von Datum= „SearchDateFrom“ und bis
Datum „SearchDateTo“) filtern kann. „FieldDate“ enthàlt das Datum der
Tabelle, nach dem der Zeitraum gefiltert werden soll. Ich würde gern drei
verschiedene Suchvarianten ermöglichen:
1.Es wird nur das Suchwort (ungebundenes Textfeld=“Search“) eingegeben und
kein Zeitraum, also „SearchDateFrom“ und „SearchDateTo“ = 0
2.Nur „SearchDateFrom“ hat einen Wert und soll zum eingegebenen Suchwort
alle Datensàtze filtern mit „FieldDate“ >= „SearchDateFrom“
3.Nur „SearchDateTo“ hat einen Wert und soll zum eingegebenen Suchwort alle
Datensàtze filtern mit „FieldDate“ <= „SearchDateTo“

Mein Code für die Filterung nach dem eingegebenen Suchwort ohne Zeitraum
funktioniert und lautet wie folgt:
Public Function FormFilterSearchTime(Search As String, SearchDateFrom As
String, SearchDateTo As String, Fieldname As String, FieldDate As String, F
As Form) As Boolean

Dim strFilter As String
Dim I As Long
Dim varArray As Variant

varArray = Split(Search, " ")
For I = LBound(varArray) To UBound(varArray)
strFilter = strFilter & " AND " & Fieldname & " LIKE '*" & varArray(I) &
"*'"
Next I

If Len(strFilter) > 0 Then
strFilter = Mid(strFilter, 6) 'erstes AND entfernen
F.Filter = strFilter
F.FilterOn = True
End If
.
End Function

Selbstverstàndlich habe ich schon rumprobiert, bin aber leider zu keinem
Ergebnis gekommen. Es wàre prima, wenn mir jemand auf die Sprünge helfen
könnte.

Viele Grüße aus Hamburg
Marion
 

Lesen sie die antworten

#1 Thomas Winkler
23/02/2009 - 22:09 | Warnen spam
Marion Hildebrandt schrieb:
Hallo NG,
ich möchte die Suchfunktion in meinen Formularen erweitern, indem ich
zusàtzlich zum Suchwort (ungebundenes Textfeld=“Search“) noch nach einem
Zeitbereich (ungebundene Textfelder von Datum= „SearchDateFrom“ und bis
Datum „SearchDateTo“) filtern kann. „FieldDate“ enthàlt das Datum der
Tabelle, nach dem der Zeitraum gefiltert werden soll. Ich würde gern drei
verschiedene Suchvarianten ermöglichen:
1.Es wird nur das Suchwort (ungebundenes Textfeld=“Search“) eingegeben und
kein Zeitraum, also „SearchDateFrom“ und „SearchDateTo“ = 0
2.Nur „SearchDateFrom“ hat einen Wert und soll zum eingegebenen Suchwort
alle Datensàtze filtern mit „FieldDate“ >= „SearchDateFrom“
3.Nur „SearchDateTo“ hat einen Wert und soll zum eingegebenen Suchwort alle
Datensàtze filtern mit „FieldDate“ <= „SearchDateTo“

Mein Code für die Filterung nach dem eingegebenen Suchwort ohne Zeitraum
funktioniert und lautet wie folgt:
Public Function FormFilterSearchTime(Search As String, SearchDateFrom As
String, SearchDateTo As String, Fieldname As String, FieldDate As String, F
As Form) As Boolean

Dim strFilter As String
Dim I As Long
Dim varArray As Variant

varArray = Split(Search, " ")
For I = LBound(varArray) To UBound(varArray)
strFilter = strFilter & " AND " & Fieldname & " LIKE '*" & varArray(I) &
"*'"
Next I



If Len(Nz(SearchDateFrom,""))>0 and isdate(SearchDateFrom) then
strFilter = strFilter & " AND FieldDate >= #" &
Format(SearchDateFrom, "\#m\/d\/yy\#") & "#"
end if

If Len(Nz(SearchDateTo,""))>0 and isdate(SearchDateTO) then
strFilter = strFilter & " AND FieldDate <= #" &
Format(SearchDateTo, "\#m\/d\/yy\#") & "#"
end if


If Len(strFilter) > 0 Then
strFilter = Mid(strFilter, 6) 'erstes AND entfernen
F.Filter = strFilter
F.FilterOn = True
End If
.
End Function

Selbstverstàndlich habe ich schon rumprobiert, bin aber leider zu keinem
Ergebnis gekommen. Es wàre prima, wenn mir jemand auf die Sprünge helfen
könnte.

Viele Grüße aus Hamburg
Marion

Ähnliche fragen