PDA

Vollständige Version anzeigen : Datenvergleich mit Vor-Quartal


NetPower
10.05.2004, 11:04
Hallo Zusammen,

folgendes Problem bekomme ich nicht in den Griff.
In einem Eingabeformular werden Daten für das im Eingabefeld eingetragene Quartal eingegeben. Im gleichen Formular wird ein Unterformular angezeigt, in dem die Daten des Vorquartals gegenübergestellt werden (als Eingabehilfe).

Dies geschieht durch den Filter:
Für's Jahr = [Formulare].[Haupt].[Jahr]
Für's Quartal = [Formulare].[Haupt].[Quartal]-3

Das o.g. Beispiel funktioniert logischerweise nur im aktuell lfd. Jahr. Nun meine Frage:
Wie stelle ich es am besten an, das es keine Probleme im 1.Quartal 2004 gibt, wenn die Vergleichdaten aus dem 4.Quartal 3003 kommen müssen.

Vielen Dank für Eure Hilfe im Voraus.

Gruß
Netpower

stpimi
10.05.2004, 11:06
Was hältst Du von der Funktion DateAdd mit Quartalen und negativen Werten?
Die Onlinehilfe hält dazu Tipps parat.

Mfg, Michael

NetPower
10.05.2004, 11:27
Hallo Michael,

vielen Dank für Deinen Tip. Gelesen hatte ich die OL-Hilfe auch schon. Leider bin ich nicht so fit, dass ich diese Funktion für meine Zwecke hätte umstellen können.

Wenn ich das richtig sehe, wird hier von einem Datumfeld ausgegangen. Dies ist bei mir nicht der Fall.
Genau da verstehe ich diese Funktion auch nicht. Bei mir muss einmal, 1. im Feld Quartal (Int) nach dem Vorquartal gesucht werden und 2. im Feld Jahr (Int) nach dem aktuellen Jahr (bzw. beim 1.Quartal eines Jahres) nach dem Vorjahr.
Im Feld Quartal stehen die Zahlen 3,6,9 oder 12. Im Feld Jahr 2003,2004 usw.

Wenn Du mir vielleicht einen Tip dahin gehend geben könntest, wie ich die DateAdd-Funktion für meine Zwecke umbauen kann, wäre ich Dir sehr zu Dank verpflichtet.

Gruß
NetPower

stpimi
10.05.2004, 11:37
Du hast also im Feld Quartal den jeweils letzen Monat des Quartals. Das Ergebnis sollte sich dann über eine Kombination von Funktionen erreichen lassen.

Mangels Access hier ungetestet:

Format(DateAdd("q";-1;DateSerial(DeinJahr;DeinQuartal;1));"mm")


Zur Erklärung:
DateSerial liefert Dir ein Datumsfeld aus der Übergabe von Jahr, Monat und Tag.
DateAdd rechnet dann n Einheiten der im ersten Parameter übergebenen Periode dazu oder weg.
Somit kommst Du auf den 1. Tag des letzten Monats im Vorquartal. Daraus nimmst Du das Format "mm" und hast wieder den Monat.


Mfg, Michael

NetPower
10.05.2004, 15:55
Hallo Michael,

vielen Dank erstmal für Deine Hilfe.
Leider funktionierte Deine Idee nicht so recht, es kamen gar keine Daten zurück.
Also habe ich nochmal etwas getüfftelt und bin zu dem Ergebnis gekommen, dass es mit der DateAdd - Funktion in diesem Fall doch recht umständlich sei.
Der einfachste Weg für mich war an dieser Stelle eine IF-Bedingung:

fürs Jahr:iif ([Formulare].[Haupt].[Quartal] = 3; [Formulare].[Haupt].[Jahr] - 1; [Formulare].[Haupt].[Jahr])

für den Monat:
iif ([Formulare].[Haupt].[Quartal] = 3; 12; [Formulare].[Haupt].[Quartal]-3)

Trotzdem nochmal vielen Dank.

Gruß
NetPower