Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Username am Juli 29, 2013, 08:10:20

Titel: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 08:10:20
Hey
Zum x-ten Mal ein Beitrag zur Berechnung des Datums. Ich habe eine Tabelle Verträge. In dieser sind u.a. zwei Spalten: Eintritt und Monate im Unternehmen. Im Formular habe ich für Eintritt Ereignis beim Klicken folgenden Ausdruck eingefügt:

=Wenn(Jahr(Datum())-Jahr([Eintritt])=0;Monat(Datum())-Monat([Eintritt]);Wenn(Datum()<[Eintritt];0;Monat(Datum())))

Wo ist der Fehler im Code ??? Ich habe es schon mit mehreren Versionen versucht, aber immer erscheinen Fehlermeldungen...

Kann mir bitte jemand helfen? - Danke! ;)
Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 29, 2013, 08:19:21
Hallo,
wenn Du jetzt noch sagen würdest, was Du berechnen willst, könnte man ja möglicherweise helfen,  ;D
Und ist Eintritt ein vollständiges Datum?
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 08:49:20
Hey
Okay, dann ausführlich  ;D
Eintritt ist ein "normales" kurzes Datumsfeld. Ich möchte ermitteln, wie lange ein Mitarbeiter im Unternehmen ist (nur die Monate). Wenn Eintrittsjahr=Aktuelles Jahr, dann Aktueller Monat - Eintrittsmonat (Eintritt: August, AktuellerMonat: November, Monate:4).
Wenn das Eintrittsjahr in der Vergangenheit liegt, ist es der aktuelle Monat (Juli: 7 Monate im Unternehmen).

Kannst du den Fehler sehen? :D
Titel: Re: Monate aus Datum berechnen
Beitrag von: Harsefeld am Juli 29, 2013, 09:27:19
Hallo das hier sollte eine taggenaue Lösung in einer Abfrage sein:

Wenn(Tag(Jetzt())>Tag([Personaldaten]![Testdatu,]);(Jahr(Jetzt())-Jahr([Personaldaten]![Testdatu,]))*12+(Monat(Jetzt())-Monat([Personaldaten]![Testdatu,]));(Jahr(Jetzt())-Jahr([Personaldaten]![Testdatu,]))*12+(Monat(Jetzt())-Monat([Personaldaten]![Testdatu,]))-1)
Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 29, 2013, 09:35:44
Hallo,
@Username
Deine Formel ist ungeeignet. Für Datumsdifferenzen hat Access eigene Funktionen.
Außerdem solltest Du in einer Abfrage berechnen. Das Tabellenfeld für die Monate ist überflüssig und kannst Du in der Tabelle ersatzlos löschen.
MonateImUnternehmen: DatDiff("m";[Eintritt];Datum())
Als Eintrag in der 1.Zeile einer leeren Spalte.
@Harsefeld
Für eine tagegenaue Lösung kannst Du obige Formel auch verwenden:
TageImUnternehmen: DatDiff("d";[Eintritt];Datum())
Eventuell statt d ein t verwenden.
Titel: Re: Monate aus Datum berechnen
Beitrag von: Harsefeld am Juli 29, 2013, 09:40:56
Hallo @ MzKLMu

deine Lösung ist definitiv kürzer als meine ,) .
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 09:45:58
Hey
Klasse Leute, danke! So schnelle Antworten :)
Mit den Monaten muss ich später noch rechnen, also lieber doch hinterlegen? Der Anteil am Umsatz des Unternehmens richtet sich nach den gearbeiteten Monaten im Unternehmen und dafür benötige ich später von jedem Mitarbeiter die Monate.
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 09:50:39
Wahrscheinlich noch ein kleiner Verständnisfehler: Die Anzahl der Monate darf 12 nicht überschreiten. Mit der Funktion MonateImUnternehmen: DatDiff("m";[Eintritt];Datum()) würde er doch endlos die Monate zählen, oder nicht?

Wenn ein Mitarbeiter im August anfängt, arbeitet er in diesem Jahr noch 4 Monate im Unternehmen. Im nächsten Jahr arbeitet er bis zu 12 Monate im Unternehmen. Da die Umsatzzahlen jederzeit generiert werden können müssen, brauche ich immer die Anzahl der Monate, die der MA aktuell im in diesem Jahr im Unternehmen arbeitet.
Danke!
Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 29, 2013, 09:51:53
Hallo,
Zitatalso lieber doch hinterlegen?
nein, auf keinen Fall. Du kannst auch mit der Formel rechnen. Der Wert für die Monate ist ja vom Eintritt abhängig und somit muss auch ein gespeicherter Tabellenwert immer neu gerechnet werden, denn im nächsten Monat ist es ja ein Monat mehr, wozu dann in der Tabelle speichern?
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 09:54:35
 
Zitat von: MzKlMu am Juli 29, 2013, 09:51:53
Hallo,
Zitatalso lieber doch hinterlegen?
nein, auf keinen Fall. Du kannst auch mit der Formel rechnen. Der Wert für die Monate ist ja vom Eintritt abhängig und somit muss auch ein gespeicherter Tabellenwert immer neu gerechnet werden, denn im nächsten Monat ist es ja ein Monat mehr, wozu dann in der Tabelle speichern?
::) hätte ich auch drauf kommen können :D
Danke
Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 29, 2013, 10:16:47
Hallo,
kannst Du bitte mal die Berechnungsmodalitäten genauer erläutern?
Willst Du die Monate bis zum aktuellen Datum?
Oder die Monate bis zum Jahresende?
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 10:31:37
Vom Jahresanfang bis zum aktuellen Datum bzw. wenn das Jahr dasselbe ist vom Eintrittsdatum bis zum aktuellen Datum.
=>Eintritt: 01.08.2012, Datum: 20.12.2012, MonateiU:4
=>Eintritt: 01.08.2012, Datum: 12.10.2013, MonateiU: 10
;)
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 29, 2013, 12:56:48
Die Lösung von MzKlMu war ja prinzipiell richtig, aber leider nicht ganz auf mein Problem zugeschnitten. Hat noch jemand eine Idee, wie ich das berechnen kann?
Noch einmal definiert: Ich möchte die Monate seit dem Eintritt bis zum aktuellen Datum gezählt haben. Wenn das aktuelle Jahr größer als das Eintrittsjahr ist, brauche ich nur die Anzahl der Monate des aktuellen Jahres.
Heißt: Im 1.Vertragsjahr Monate im unternehmen <=12, in den Folgejahren =12.

Danke für eure Hilfe!

LG
Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 29, 2013, 13:19:19
Hallo,
wenn ich es richtig verstanden habe, sollte das so passen:
MonateImUnternehmen: Wenn(Jahr(Datum())=Jahr([Eintritt]);DatDiff("m";[Eintritt];Datum());DatDiff("m";DatSeriell(Jahr(Datum());1;1);Datum()))
Titel: Re: Monate aus Datum berechnen
Beitrag von: Username am Juli 30, 2013, 09:09:02
Klasse! Vielen vielen Dank!
Ich habe den Code nur noch etwas ergänzt, da er einen Monat zu wenig ausgibt.
=Wenn(Jahr(Datum())=Jahr([Eintritt]);DatDiff("m";[Eintritt];Datum())+1;DatDiff("m";DatSeriell(Jahr(Datum());1;1);Datum())+1)

Titel: Re: Monate aus Datum berechnen
Beitrag von: MzKlMu am Juli 30, 2013, 09:12:55
Hallo,
Zitatda er einen Monat zu wenig ausgibt.
das möchte ich bezweifeln. Mein Vorschlag ermittelt die vollen Monate zwischen 2 Datumswerten.