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.
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
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
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]
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]
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
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
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 :)
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
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)
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.
Hallo,
wo ist die "Frist" für die unterschiedlichen Equipments zu finden?
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
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.
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
Hallo,
ich sehe da aber nicht das Gleiche 8)
Der Ausdruck berechnet auf den Tag genau....
Wenn es bei Dir nicht so ist, ist was anderes faul. (Meistens falscher Datentyp in der Tabelle oder doch nicht genau abgetippt, bzw. angepasst)
Hallo,
Ich habe es jetzt hinbekommen, da war noch ein anderes Skript was mir Probleme machte. Jetzt muss ich das Gleiche noch für einen anderen Eintrag mit Monaten machen, mit MMM kriege ich das aber nicht hin
Danke nochmals
Hi
Zitat von: wuffwuff2003 am Juli 01, 2013, 13:18:08
mit MMM kriege ich das aber nicht hin
dann probier mal mit einem m. (siehe auch access Hilfe)
Harald
Hallo Danke das hat geholfen , aber in der Hilfe habe ich das nicht gefunden , danke nochmals :)
Hallo,
Screenshot der Access-Hilfe zu Datadd (DateAdd).....
[Anhang gelöscht durch Administrator]