Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Paule am Mai 11, 2016, 09:19:59

Titel: DatSeriell
Beitrag von: Paule am Mai 11, 2016, 09:19:59
Hallo,

ich habe eine kleine Frage zur DatSeriell-Funktion.

Ich habe eine Tabelle mit nur 9 Datensätzen. Jeder einzelne dieser Datensätze hat ein Datum.

3 Datensätze weisen das Datum 23.3.2016, 3 andere das Datum 15.4.2016 und die letzten drei den 7.5.2016 auf.

Ich bräuchte zur Mitte jeden Monats jeweils eine Übersicht mit den Datensätzen, die vor zwei Monaten hinzugefügt wurden.
Sprich: Mitte Mai will ich alle Datensätze mit einem Datum irgendwann im März.
Mitte Juni dann alle mit einem Datum irgendwann im April.
(Natürlich könnte ich die Kriterien manuell immer monatlich anpassen. Allerdings würde ich das Ganze dynamisch gestalten, damit man das eben umgehen kann).

Ich habe an die Verwendung der DatSeriell-Funktion gedacht und folgendes (als Kriterium) probiert.

<DatSeriell(Jahr(Datum()),Monat(Datum()-1),1)

Damit will ich ausdrücken, dass das Datum vor dem ersten Tag des letzten Monats (also vor dem 1.April) liegen muss.

Jetzt zeigt er mir richtigerweise nicht die Datensätze mit Datum Mai an, aber leider immer noch die aus dem April. Eigentlich dürfte er ja nur 3 Datensätze (mit Datum aus dem März) anzeigen.

Wo liegt das Problem?

Viele Grüße und vielen Dank für eure Hilfe,
Marcus
Titel: Re: DatSeriell
Beitrag von: DF6GL am Mai 11, 2016, 09:44:01
Hallo,


dass das Datum vor dem ersten Tag des letzten Monats (also vor dem 1.April) liegen muss

UND größer gleich  dem Ersten des vorletzten Monats  sein muss
Titel: Re: DatSeriell
Beitrag von: Paule am Mai 11, 2016, 10:12:44
Ok, passt und funktioniert. DANKE!

Ich würde jetzt gerne eigentlich noch etwas hinzufügen als Kriterium. Ich versuche es möglichst einfach auszudrücken.

Jetzt werden mir ja mit dem Kriterium:
<=DatSeriell(Jahr(Datum()),Monat(Datum())-1,1) Und >=DatSeriell(Jahr(Datum()),Monat(Datum())-2,1)

Mitte Mail die Datensätze mit Datum im März angezeigt.

Im Juni würden mir dann alle Datensätze angezeigt werden, mit Datum irgendwann im April.

Nun möchte ich allerdings erreichen, dass die Datensätze mit Datum im März nicht nur bei der Abfrage jetzt, also Mitte Mai, gezeigt werden, sondern noch für 9 weitere Monate. Sprich: Im Juni, Juli, August, September, Oktober, November, Dezember, Januar 2017 sollen auch die Datensätze mit Datum vom März angezeigt werden. Erst danach fallen diese Datensätze dann aus der Abfrage "raus".

D.h., bei der Abfrage im Juni soll er mir folgende Datensätze anzeigen:
-3 Datensätze mit Datum im März
-3 Datensätze mit Datum im April

Bei der ABfrage im Juli dann:
-3 Datensätze mit Datum im März
-3 Datensätze mit Datum im April
-3 Datensätze mit Datum im Mai.

Gibt es dafür eine Lösung?

Titel: Re: DatSeriell
Beitrag von: DF6GL am Mai 11, 2016, 10:24:22
Hallo,



Wenn immer konstant ab März in Betracht kommt, dann eben
Und >=DatSeriell(Jahr(Datum()),3,1)
Titel: Re: DatSeriell
Beitrag von: Paule am Mai 11, 2016, 10:37:24
Die ersten Datensätze sind zumindest mit Datum März.

Aber das ist wie gesagt eine Daueraufgabe.
Zu jeder Monatsmitte will ich mir die Datensätze anzeigen lassen, die ein Datum kleiner als der erste Tag des letzten Monats aufweisen. Und gleichzeitig soll es größer sein als der erste Tag vor 11 Monaten.

Heißt, jetzt, Mitte Mai, soll er mir Datensätze anzeigen, die ein Datum entweder aus:
- Juni, Juli, August, September, Oktober, November, Dezember 2015
- Januar, Februar, März 2016
besitzen.

<DatSeriell(Jahr(Datum()),Monat(Datum())-1,1) Und >=DatSeriell(Jahr(Datum()),Monat(Datum())-11,1)

Wäre das damit geschafft?
Titel: Re: DatSeriell
Beitrag von: DF6GL am Mai 11, 2016, 10:45:53
Hallo,

warum nicht selber testen..... 8)
Titel: Re: DatSeriell
Beitrag von: Paule am Mai 12, 2016, 06:59:44
Ok, jetzt funktioniert die Abfrage. Vielen Dank!

In meiner Abfrage habe ich jetzt die Datensätze, die dort vorhanden sein sollen.

Diese haben jetzt folgende Struktur:
- Customer ID
- Sales ID
- KIVAAmount

Dieser KIVA Amount ist bei allen Kunden 40.000.

Dieser Betrag soll sich über die 10 Monate, die der Datensatz in der Abfrage vorhanden ist, immer weiter aufaddieren.
Sprechen wir also vom Report heute, also Mitte Mai, so haben wir zum ersten Mal die Datensätze mit Datum im März in der Abfrage. Da es der erste Monat ist, wäre der Amount 40.000.

Starte ich die Abfrage nun Mitte Juni, wäre derselbe Datensatz immer noch in der Abfrage vorhanden. Der Amount sollte jetzt aber nicht 40.000, sondern 80.000 sein. Und so weiter.

Wie lässt sich das denn in Formelsprache darstellen, dass der Amount sich mit jeder Monatsdifferenz um 40.000 erhöht?

Ich wäre sehr dankbar für eure Hilfe!
Titel: Re: DatSeriell
Beitrag von: DF6GL am Mai 12, 2016, 08:49:16
Hallo,


versuch in einer freien Abfragespalte:

SummeAmount:  Summe([KIVAAmount])
Titel: Re: DatSeriell
Beitrag von: Paule am Mai 12, 2016, 12:00:37
Hallo,

ja.
Der KIVAAmount soll sich allerdings dynamisch anpassen und je nach Datum des Datensatzes eben 40.000, 80.000 oder 120.000 anzeigen.
Kann man das irgendwie umsetzen und wenn ja, wie? 
Titel: Re: DatSeriell
Beitrag von: DF6GL am Mai 12, 2016, 12:53:12
Hallo,

wenn Du damit eine laufende Summe meinst:

http://www.donkarl.com/?FAQ3.11