Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Umsatzbericht für zwei Zeiträume

Begonnen von mikoe65, Dezember 02, 2019, 17:01:43

⏪ vorheriges - nächstes ⏩

mikoe65

Hallo und guten Tag liebe Access-Gemeinde.

Ich möchte um Eure geschätzte Mithilfe bei der Anpassung eines Berichtes bitten. Folgendes Szenarion liegt an:

Es gibt einen gruppierten Bericht "Statistik Artikelumsatz im Jahr". Darin finden sich die Summen und Stückzahlen der Artikel aus den Verkäufen eines Jahres sowie eine Gesamtsumme am Ende des Berichtes. - Basis ist eine Parameterabfrage "abf_Artikelumsatz". Rufe ich den Bericht auf, gebe ich z. B. 2017 ein und erhalte eine Übersicht mit den Summen/Stückzahlen meiner Artikel im Jahr 2017. - Bis hierhin alles ok.

Ziel ist es, in dem selben Bericht pro Artikel nicht nur die abgefragten Werte "summiert" zu bekommen, sondern auch die des Vorjahres ... quasi als Vergleich nebeneinander.

Ich zerbreche mir schon den ganzen Tag meinen Kopf, komme aber nicht weiter. - Meine Access-Version ist 2016.

Habt Ihr eine Idee, wie ich das hinbekomme?

Beste Grüße
Michael

DF6GL

Hallo,

zunächst muss die Abfrage ein Kriterium für den Zeitbereich (Jahreszahl-Bereich) erhalten. Weiterhin ist der Bericht zusätzlich nach der Jahreszahl zu gruppieren und passend zu "designen".  Ob das "nebeneinander" möglich ist, wage ich jetzt zu bezweifeln, allenfalls könnten zwei Unterberichte nebeneinander erstellt werden.

Das Kriterium sollte auch nicht als Parameter in der Abfrage stehen, der Bericht sollte mit der OpenReport-Methode und mit Übergabe einer Where-Condition geöffnet werden.


Alternativ stünde auch eine Domänenaggregatfunktion (DSum(), siehe VBA-Hilfe ) zur Diskussion.

ebs17

Durch eine Gestaltung wie folgt bekommt man die Werte vom aktuellen Jahr und dem Vorjahr in eine Zeile der Datenherkunft:
PARAMETERS
   parJahr Int
;
SELECT
   AJ.Monatserster,
   AJ.Artikel,
   AJ.Stueckzahl_AJ,
   VJ.Stueckzahl_VJ
FROM
   TabelleX AS AJ
      LEFT JOIN TabelleX AS VJ
      ON AJ.Artikel = VJ.Artikel
         AND
      AJ.Monatserster = DateAdd("yyyy", 1, VJ.Monatserster)
WHERE
   AJ.Monatserster BETWEEN DateSerial(parJahr, 1, 1)
      AND
   DateSerial(parJahr, 12, 31)
Mit freundlichem Glück Auf!

Eberhard

mikoe65

Hallo zusammen,

Thema ist gelöst ... hab es selbst hinbekommen über eine Kreuztabellenabfrage, aber ohne fremde Hilfestellung und ohne "F1".

Gruß
Michael