Access-o-Mania

Access-Forum => Tabelle/Abfrage => Thema gestartet von: GebHeinz am Februar 10, 2021, 10:27:39

Titel: Fortschreibung von Datum für folgende Jahre
Beitrag von: GebHeinz am Februar 10, 2021, 10:27:39
Erst einmal ein herzliches HALLO in die Runde, da ich neu hier bin.
Ich habe eine DB mit Verträgen, in dem u.a. das Startdatum des Vertrages steht. Ein Teil dieser Verträge sind mit jährlichem Service gekoppelt und dafür habe ich eine Abfrage geschrieben, die mir als Ergebnis alle entsprechenden Verträge mit dem kommenden Rechnungsdatum anzeigt (mit DatAdd). D.h.z.B. ein Vertrag mit Datum vom 15.06.2020 wird mir durch Verknüpfung von Date und DatAdd als fällig am 15.06.2021 angezeigt. Das Problem was ich jetzt aber habe ist, dass mir nächstes Jahr für diesen Vertrag auch nur der 15.06.2021 angezeigt wird, weil DatAdd ja nur ein Jahr dazurechnet, wenn das erste Rechnungsdatum kleiner ist als das aktuelle Datum der Abfrage.

Meine Frage ist jetzt, wie bekomme ich es hin, dass mir die Abfrage (wenn ich sie z.B. im Oktober 2021 stelle) mir das Datum 15.06.2022 und nicht 2021 ausgibt?

Danke schon mal im Voraus für die Hilfe!

Frostige Grüße,
Heinz
Titel: Re: Fortschreibung von Datum für folgende Jahre
Beitrag von: ebs17 am Februar 10, 2021, 11:35:23
Über eine Zahlenhilfstabelle kannst Du das DateAdd vervielfältigen, siehe z.B. Grundlagen - SQL ist leicht (1) - Hilfstabellen (https://www.ms-office-forum.net/forum/showthread.php?t=298414)
Titel: Re: Fortschreibung von Datum für folgende Jahre
Beitrag von: GebHeinz am Februar 10, 2021, 16:50:30
Hallo Eberhard,

1.000 Dank für den Tip! Das ist vielleicht eine Idee, aus dem Ursprungsdatum eine Hilfstabelle zu generieren und daraus das Datum zu filtern, was entweder 6 Monate vor oder nach dem Abfragedatum ist. Ich probiere es einfach mal und hoffe, ich bekomme das hin.  ;)

Beste Grüße,
Heinz
Titel: Re: Fortschreibung von Datum für folgende Jahre
Beitrag von: ebs17 am Februar 10, 2021, 17:10:35
Eine Kalendertabelle ist eine weitere sinnvolle Hilfstabelle, korrekt.