Supportnet / Forum / Datenbanken
Datum sortieren
Frage
Hy zusammen
Ich habe eine Adressliste mit Geburtstagen, welche ich sortieren muss. Die Sortierung erfolgt aufsteigend nach Monat und Tag. Soweit so gut.
1. Problem: Wie bringe ich Access dazu, ab einem bestimmten Datum zu sortieren. Z. Bsp. frei gewähltes Startdatum 24. Dezember 2004. Sortieren aufsteigend nach den nun folgenden Geburtstagen zBsp. 26.12, 1.1., 25.2. etc. Momentan sortiert Access immer beginnend am 1.Januar.
2. Problem: Wenn ich aus der Abfrage einen Bericht erstelle ist er zur Zeit wie in der Abfrage sortiert nach Monat und Tag, d.h. zuoberst steht der 1.1, danach der 25.2. etc. Nun ziehe ich ein weiteres Feld in den Berichtskopf mit dem Format Heute(). Sobald diese Feld eingefügt wird, ändert Access die Sortierung meiner Daten. Diese Feld soll als Anhaltspunkt dienen, mit welchem Stichtag die Liste erstellt wurde. Wer weiss Abhilfe dagegen.
Besten Dank für Eure Hilfe
Antwort 1 von Teddy
zu 1) sowas löst man über eine Differenzrechnung
Also zusätzliches Feld in die Abfrage einbauen und mit 1224 - GeburtsMonat/Tag füllen
und danach sortieren
zu 2) Du kannst die Sortierung im Bericht einstellen.
Gruß
Teddy
Also zusätzliches Feld in die Abfrage einbauen und mit 1224 - GeburtsMonat/Tag füllen
und danach sortieren
zu 2) Du kannst die Sortierung im Bericht einstellen.
Gruß
Teddy
Antwort 2 von Firebird
Hallo Teddy
Bin vielleicht nicht ganz up to date, aber kannst du mir die Formel etwas genauer erklären? Wenn ich eine normale Differenzberechnung zwischen einem fiktivem Startdatum (z.Bsp 8.6.04) und dem Geburtstag nehme, rechnet Access die Jahre, Monate oder Tage dazwischen aus. Aber dass gewisse Termine in der Vergangenheit liegen wird nicht berücksichtigt. Somit wird z.Bsp. der 1. Mai als Geburtsdatum vor dem 20. Dezember aufgelistet, obwohl dieser Tag weiter in der Zukunft liegt.
Alles klar?
Gruss Firebird
Bin vielleicht nicht ganz up to date, aber kannst du mir die Formel etwas genauer erklären? Wenn ich eine normale Differenzberechnung zwischen einem fiktivem Startdatum (z.Bsp 8.6.04) und dem Geburtstag nehme, rechnet Access die Jahre, Monate oder Tage dazwischen aus. Aber dass gewisse Termine in der Vergangenheit liegen wird nicht berücksichtigt. Somit wird z.Bsp. der 1. Mai als Geburtsdatum vor dem 20. Dezember aufgelistet, obwohl dieser Tag weiter in der Zukunft liegt.
Alles klar?
Gruss Firebird
Antwort 3 von Teddy
Ich würde nicht mit dem Datumsfeld arbeiten sondern - wie ich es eigentlich in Deiner Problemschilderung verstanden hatte - nur mit Monat und Tag.
Ich würde also ein zusätzliches Feld in die Abfrage einbauen mit val(monat(gebdat)) * 100 + val(tag(gebdat)) --- ergibt für den 17.05.1950 dann 0517. Und das kann man dann ganz normal von 1224 abziehen.
Gruß
Teddy
Ich würde also ein zusätzliches Feld in die Abfrage einbauen mit val(monat(gebdat)) * 100 + val(tag(gebdat)) --- ergibt für den 17.05.1950 dann 0517. Und das kann man dann ganz normal von 1224 abziehen.
Gruß
Teddy
Antwort 4 von Firebird
hallo Teddy
Das Ganze funktioniert soweit einwandfrei und erzeugt mir positive und negative Werte (-418, +409 etc.). Wenn ich nun aber absteigend sortiere, stimmt zwar die Geburtstagsreihenfolge, ich habe aber wieder die positiven Werte zuoberst, sprich Januar, Februar etc. erst danach folgen die negativen Werte.
Ich sollte aber die negativen Werte zuerst aufgeführt haben, das diese ja näher beim heutigen Datum liegen.
Sehe ich den Wald vor lauter Bäumen nicht?
Gruss Firebird
Das Ganze funktioniert soweit einwandfrei und erzeugt mir positive und negative Werte (-418, +409 etc.). Wenn ich nun aber absteigend sortiere, stimmt zwar die Geburtstagsreihenfolge, ich habe aber wieder die positiven Werte zuoberst, sprich Januar, Februar etc. erst danach folgen die negativen Werte.
Ich sollte aber die negativen Werte zuerst aufgeführt haben, das diese ja näher beim heutigen Datum liegen.
Sehe ich den Wald vor lauter Bäumen nicht?
Gruss Firebird
Antwort 5 von Teddy
Hallo Firebird !
Wirklich kompliziert !
Wie wär´s statt der Rechnerei mit einem zusätzlichen Feld = "A", wenn GebMonat/Tag >=
TagesMonat/Tag und sonst = "B"
Sortierung nach Zusatzfeld und GebMonat/Tag
Gruß
Teddy
Wirklich kompliziert !
Wie wär´s statt der Rechnerei mit einem zusätzlichen Feld = "A", wenn GebMonat/Tag >=
TagesMonat/Tag und sonst = "B"
Sortierung nach Zusatzfeld und GebMonat/Tag
Gruß
Teddy
Antwort 6 von Firebird
Danke Teddy, aber auch damit bleibt mein Problem bestehen. Trotzdem danke für deine Hilfe.
Gruss
Firebird
Gruss
Firebird

