Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datum + 3 Jahre berechnen

Begonnen von wuffwuff2003, Juni 19, 2013, 13:51:28

⏪ vorheriges - nächstes ⏩

wuffwuff2003

Hallo,
Ich habe eine Spalte in meiner Tabelle "Datum Erhalt Jacken" dort trage ich das Datum ein wo ein Mitarbeiter seine Jacke erhalten hat. Dieses Datum steht im Formular ebenfalls. Nun möchte ich neben diesem Datum ein Feld haben z.B. Textfeld was ein Bild mt "OK" und ein Bild mit einem "X" anzeigt je nachdem ob der Mitarbeiter eine neue Jacke bestellen kann. Kriterium hierfür ist die Jacke muss mindestens 3 Jahre alt sein. Wie stelle ich das an?
Ich habe in der Tabelle eine 2. Spalte berechnen lassen : [Datum Erhalt Jacken + 1095]
Diese 1095 wären 3x365 Tage, soweit meine überlegung. Ist das Ok, oder gibt es eine bessere Methode. Denn nur das Ausrechnen des Datums bringt mir noch kein Symbol ins Formular.

DF6GL

Hallo,



Symbol und Ausrechnen sind zwei paar Stiefel....



"Ausrechnen"  könnte mit der DateAdd()-Funktion (siehe dazu in der VBA-Hilfe) erledigt werden.


Symbol einsetzen ist eher  nicht ratsam. Ich würde ein ungebundenes Textfeld mittels Bedingter Formatierung  so farblich einstellen, dass es z. B. grünen Hintergrund erhält, wenn die 3-Jahresfrist verstrichen ist.


Zudem ist dringend angeraten, KEINE Sonder- und LEERzeichen in Namen zu verwenden.  Dein Ausdruck müßte im "Feld"-Feld einer Abfrage  syntaktisch so lauten

[Datum Erhalt Jacken] + 1095

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

wuffwuff2003

Vielen Dank

Mit dem Syntax Fehler wo du geschrieben hast, das habe ich auch so richtig in Access hab es nur hier falsch eingetippt. Sorry. Mit der bedingten Formatieren das klingt sehr gut, das werde ich auch so machen, aber um ihm jetzt zu sagen wann der Zeitraum 3 Jahre fertig sind, soll ich das in der bedingten Formatierung einstellen, oder eigens in VBA verfassen. VBA bin ich nicht so der Profi, da schreibe ich nur die Standartkommandos drin, lasse mich aber gerne belehren  :)

Mfg

MzKlMu

#3
Hallo,
da brauchst Du gar nichts in der Abfrage berechnen. Den Vergleich mit den 3 Jahren kannst Du direkt in dem Feld mit dem Datum mit der bedingten Formatierung machen. Wenn die 3 Jahre rum sind wird das Feld mit dem Datum grün, ansonsten rot.
Siehe Bild.
Eventuell muss der Formatstring "yyyy" gegen "jjjj" getauscht werden.
Ich habe die DatDiff Funktion verwendet, da kann man genau 3 Jahre rechnen.

Das Datum wenn die 3 Jahre rum sind, kannst Du in der Abfrage mit DatAdd tagegenau berechnen:
DreiJahreRumAm: DatAdd("yyyy";3;[DatumErhaltJacken])

[Anhang gelöscht durch Administrator]
Gruß Klaus

bahasu

Hi,

anbei im Anhang ein Vorschlag:

Im Formular wird eine Abfrage als Datenquelle genutzt. In der Abfrage wird die Differenz aus (Damaliges Datum + 3 Jahre) und aktuellem Datum berechnet. Das Ergebnis (>=0, <0) wird als Wahrheitswert in der Spalte "Jacke_besorgen" angezeigt.

Per bedingter Formatierung wird ein Ja mit grünem Hintergrund und ein Nein mit rotem Hintergrund angezeigt.

Harald


[Anhang gelöscht durch Administrator]
Servus

wuffwuff2003

Ok vielen Dank

Damit komm ich klar ich werde das gleich morgen mal versuchen. Eine Frage aber habe ich noch. Wenn ein altes Datum z.B. 12.02.02 eingetragen ist, und ich das "yyyy" benutze gilt das dann genau 3 Jahre demnach wäre das neue Datum 12.02.05 oder müsste ich in meinem Fall dann aus "yyyy" folgendes machen: "dd/mm/yy" ?

Danke

bahasu

Hi,

ich hatte bei der dateadd-Funktion "yyyy" genutzt, um exakt 3 Jahre zu addieren. Dann sollten auch Probleme mit Schaltjahren zu vermeiden sein (sofern es beim Jacken-Bestellen auf den Schalttag ankommt ;D) .

Die möglichen Einstellungen (siehe access-Hilfe) sind:
yyyy Jahr
q      Quartal
m     Monat
y      Tag des Jahres
d     Tag
w    Wochentag
ww Woche
h    Stunde
n    Minute
s    Sekunde

Harald
Servus

wuffwuff2003

Ah ok damit hast du meine Frage beantwortet, denn mit yyyy wird dann das Schaltjahr mit berücksichtigt, das ist für Jacken recht unwichtig, aber es kommen mit Sicherheit noch andere Formulare in dieser Datenbank wo das schon wichtig sein wird, dann weiß ich das jetzt auch, Vielen Dank :)


wuffwuff2003

Hallo mir ist hier noch ein Fehler aufgefallen, der folgende Ausdruck bei der bedingten Formatierung verursacht zwar ein Addieren von 3 Jahren zum heutigen Datum, aber nicht exakt auf das Datum genau, sprich er berücksichtigt nur die Jahreszahl ob es jetzt im November 3 Jahre her sind oder Januar ist ihm egal, nur die Jahreszahl ist ihm wichtig. Fehlt hier noch etwas im Ausdruck:

DatDiff("jjjj";DatAdd("jjjj";5;[Casque de protection]);Datum())<=0


DF6GL

Hallo,

WAS genau soll denn der Ausdruck berechnen? Sprich, wie lautet die Bedingung genau in verbalen Worten ausgedrückt...

(z. B:     TextFeld soll grün werden , wenn das Datum in Feld  "Casque de protection"  .....      ist)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

wuffwuff2003

Textfeld soll grün werden wenn der Mitarbeiter einen neuen Helm bekommen darf. Hier gilt die Frist: 1 Helm pro 5 jahre. Sind diese 5 Jahre nach Ablauf des heutigen Datums verstrichen wird das textfeld grün anders bleibt es rot.
Momentan berücksichtigt er nur das Jahr. Er soll aber das ganze Datum berücksichtigen. Sagen wir heute am 28.06.13 bekommt der Mitarbeiter seinen Helm, dann bleibt das Datum rot, bis am 29.06.13 dann wechselt es in grün und man weis, ok er kann einen neuen bekommen.

DF6GL

Hallo,


wo ist die "Frist" für die unterschiedlichen Equipments zu finden?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

wuffwuff2003

Die Frist ist nicht variabel, die setze ich sogleich in der bedingten Formatierung fest, in dem Ausdruck "siehe oben" steht hier die "5" für 5 Jahre

DF6GL

Hallo,

dann sollte das so gehen:



Ausdruck ist:     DatAdd("yyyy"; 5 ; [Abgabedatum]) < Datum()

mit Formatierung auf grünen Feld-Hintergrund


"Abgabedatum"  ist das Formularfeld, in dem das Ab- oder Ausgabedatum des Equipments an den Mitarbeiter steht.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

wuffwuff2003

Das ist an sich ja das gleiche wie das was ich auch eingegeben habe, aber da berücksichtigt er nur die Jahresanzahl nicht aber auf den Tag genau