PDA

Vollständige Version anzeigen : flexible Filter zusammenbauen


epitom
07.05.2004, 10:12
Moin moin,
Eine Routine baut anhand der gesetzten Kriterien ein Filter zusammen. Es klappt soweit, bis ich nun zum Datum gelangt bin.
zB. gefiltert soll das mindest Alter.
aus dem Mindestalter errechne ich das Geburtsdatum, da im gesuchten Feld das Geburtsjahr steht.
Zuererst habe ich es mit den Rauten (#) probiert
(zB."GebTag <= #01.01.1979#"),
es kam aber eine Syntaxfehlermeldung.
dann halt wie ein Textbehandelt
"Gebtag <='01.01.1979'" dann erscheint Fehler 2001


Das Format des "GebTag"-Feldes ist das eines Datumfeldes

Wo ist denn da der haken?

Ausschnitt aus dem Code
...
...
If Kons9 = True Then
'Datum zusammenbauen
monat1 = month(Now)
Jahr1 = (year(Now) - Me!SuchAlterv)
Datum1 = "1-" & monat1 & "-" & Jahr1
Datum1 = FormatDateTime(Datum1, vbShortDate)
If AFilter > "" Then
AFilter = AFilter & " AND GebTag <= " & "#" & Datum1 & "#"
Else
AFilter = "GebTag <= " & "#" & Datum1 & "#"
End If
End If

If AFilter > "" Then

With Me!UForSuchAup.Form
.Filter = AFilter
.FilterOn = True
End With
Else
MsgBox "Sie haben kein Kriterium gesetzt", vbOKOnly, "Hinweis"
End If

Gruss Tom

J_Eilers
07.05.2004, 10:13
Hi,

hast du es mal mit der FAQ 6.8 (www.donkarl.com) versucht?

epitom
07.05.2004, 10:37
Hi Jan,
ich kannte es schon, aber beim wiederholten ansehen hat es mich nun auf den richtigen Pfad gebracht und zwar:

muss das Datumsfeld mit "-" anstatt mit "." gefuellt sein
(zB. #01-02-1976#)

der richtige Code lautet dann
'Datum zusammenbauen
monat1 = month(Now)
Jahr1 = (year(Now) - Me!SuchAlterv)
Datum1 = "1-" & monat1 & "-" & Jahr1

'diese Umformartierung brauche ich dann garnicht mehr!!!!
'Datum1 = FormatDateTime(Datum1, vbShortDate)

If AFilter > "" Then
AFilter = AFilter & " AND GebTag <= " & "#" & Datum1 & "#"
Else
AFilter = "GebTag <= " & "#" & Datum1 & "#"
End If
End If

J_Eilers
07.05.2004, 10:38
Also funktioniert es jetzt?

epitom
07.05.2004, 10:49
ja, mit dem "-" klappt es nun

:-)