1.5k Aufrufe
Gefragt in Datenbanken von
Hallo,

ich möchte in Access das Eintritts-Datum und das Austritts-Datum in der Abfrage voneinander abziehen und das Ergebnis in Jahre und Monate und TAGE anzeigen lassen.
Einen Schritt kenne ich schon, wie nachfolgend

DatDiff("jjjj";[Eintritt-B];[Austritt-B])

aber beim Ergebnis wird nur das Jahr angezeigt.

Was kann ich ändern, damit Jahr und Monat und TAGE angezeigt wird.

Vielen Dank für jegliche Unterstützung.

8 Antworten

0 Punkte
Beantwortet von
Hallo Zipora,

Das Anfangsdatum steht im Feld mit der Bezeichnung "A"
Das Enddatum steht im Feld mit der Bezeichnung "B"

Die Formel lautet:

Differenz: DatDiff("yyyy";[A];[B])+(Format([A];"mmdd")>Format([B];"mmdd")) & " Jahre " & (Monat([B])-Monat([A])+(Tag([A])>Tag([B]))+12) Mod 12 & " Monate " & Tag([B])-Tag([A])+Wenn(Tag([A])>Tag([B]);Tag(DatSeriell(Jahr([A]);Monat([A])+1;0));0) & " Tage"

Die Feldbezeichnungen sollten ev. deinserseits noch angepaßt werden

Gruß
Paul1

[sub]Excel > Access > MS-Office
MS Windows 10 Professional 64 Bit
MS Windows 7 Professional 64 Bit
ECDL-Syllabus Version 4.0
FIBU/KORE/PV/KA/AB[/sub]
0 Punkte
Beantwortet von
Hallo,

vielen Dank für alle Unterstützung, jedoch wenn ich die Formel entsprechend abändere mit den korrekten Feldern, die miteinander verrechnet werden sollen, das wären
Eintritt-B = Eintritt des Besitzers
Austritt-B = Austritt des Besitzers
und die unten stehende Formel in das entsprechende Abfragefeld eingebe und Enter drücke, dann kommt folgende Meldung:

"Der von Ihnen angegebenen Ausdruck enthält eine Funktion, für die die falsche Anzahl von Argumenten angegeben ist."


DatDiff("yyyy";[Eintritt-B];[Austritt-B])+(Format([Eintritt-B];"mmdd")>Format([Austritt-B];"mmdd")) & " Jahre " & (Monat([Austritt-B])-Monat([Eintritt-B];[])+(Tag([Eintritt-B];[])>Tag([Austritt-B];[]))+12) Mod 12 & " Monate " & Tag([Austritt-B])-Tag([Eintritt-B])+Wenn(Tag([Eintritt-B])>Tag([Austritt-B]);Tag(DatSeriell(Jahr([Eintritt-B]);Monat([Eintritt-B])+1;0));0) & " Tage"

Weiß nicht was nicht korrekt ist an Formel.

Die vorige Formel, mit nur Monate und Jahr funktioniert einwandfrei:

DatDiff('jjjj';[Eintritt-B];[Austritt-B]) & " Jahre und " & DatDiff('m';[Eintritt-B];[Austritt-B]) Mod 12 & " Monate"
0 Punkte
Beantwortet von
Hallo Zipora,

Wenn ich Deine Formel nehme, erhalte ich die gleiche Mitteilung, Du hast meine Formel nicht richtig angepasst.

Das habe ich jetzt für Dich gemacht:

Differenz: DatDiff("yyyy";[Eintritt-B];[Austritt-B])+(Format([Eintritt-B];"mmdd")>Format([Austritt-B];"mmdd")) & " Jahre " & (Monat([Austritt-B])-Monat([Eintritt-B])+(Tag([Eintritt-B])>Tag([Austritt-B]))+12) Mod 12 & " Monate " & Tag([Austritt-B])-Tag([Eintritt-B])+Wenn(Tag([Eintritt-B])>Tag([Austritt-B]);Tag(DatSeriell(Jahr([Eintritt-B]);Monat([Eintritt-B])+1;0));0) & " Tage"

Wenn das Austrittsdatum mitgezählt werden soll, dann verwende:

Differenz2: DatDiff("yyyy";[Eintritt-B];[Austritt-B])+(Format([Eintritt-B];"mmdd")>Format([Austritt-B];"mmdd")) & " Jahre " & (Monat([Austritt-B])-Monat([Eintritt-B])+(Tag([Eintritt-B])>Tag([Austritt-B]))+12) Mod 12 & " Monate " & Tag([Austritt-B])-Tag([Eintritt-B])+Wenn(Tag([Eintritt-B])>Tag([Austritt-B]);Tag(DatSeriell(Jahr([Eintritt-B]);Monat([Eintritt-B])+1;0));0)+1 & " Tage"

Bei mir funktioniert's, getestet mit Access 2003

Ersuche Dich um Nachricht, ob es jetzt auch bei Dir funktioniert

Gruß
Paul1
0 Punkte
Beantwortet von
Hallo Paul1,

vielen Dank für alle Mühe, jedoch funktioniert es immer noch nicht bei mir.
Beim Einfügen der beiden Formeln kommt jeweils die Meldung
"Undefinierte Funktion „Format“ in Ausdruck".

Ich habe Access 2000-Dateiformat!

Danke

Gruß
Zipora
0 Punkte
Beantwortet von
Hallo Zipora,

Ich verstehe das nicht, habe meine Datenbank in die Version 2000 zurückkonvertiert und trotzdem funktionieren beide Formeln problemlos.

Vorsichtshalber habe ich die Formeln aus AW3 nochmals in die Abfrage eingefügt.

Soll ich Dir eine Beispieldatenbank hochladen?

Gruß
Paul1
0 Punkte
Beantwortet von
Hallo nochmals,

vielleicht liegt*s daran:

gehe auf >Extras>Makro>Sicherheit
und stelle die Stufe auf "niedrig"

probiere es dann nochmals

Gruß
Paul1
0 Punkte
Beantwortet von
Hallo Zipora,

eine Beispieldatenbank in Access 2000 mit den gegenständlichen Formeln:

http://p.aon.at/u/772405/?key=NYB2B5HESQLH&shareId=40597#folder-1511659

Gruß
Paul1
0 Punkte
Beantwortet von
Hallo Paul1,

vielen Dank für all Deine Mühe. Ich muss es mir irgendwann nochmal in Ruhe anschauen.

Übrigens die Datumsberechnung in Excel mit den gleichen Daten wie in Access funktionert wunderbar, so dass Jahre, Monate und Tage zusammen in einem Feld berechnet und angezeigt werden. Jedoch in Access klappt es einfach nicht, vermutlich stimmt was nicht mit der Datenbank.

Vielen vielen herzlichen Dank für alle Mühe und Einsatz. Ich hoffe, ich bekomme den Dreh in der Zukunft raus.

Gruß

Zipora
...