Supportnet Computer
Planet of Tech

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

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

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

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

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


Antwort 6 von Firebird

Danke Teddy, aber auch damit bleibt mein Problem bestehen. Trotzdem danke für deine Hilfe.

Gruss
Firebird