September 23, 2021, 13:13:56

Neuigkeiten:

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


Datum minus 1 Tag bei Nachtschicht

Begonnen von tohrr1, Juli 13, 2021, 11:09:22

⏪ vorheriges - nächstes ⏩

tohrr1

Guten Morgen,

Ich habe folgendes Problem und zwar dass, wenn beim Bericht schreiben das Datum um einen Tag automatisch zurück setzen will wenn Nachtschicht ist.
Ich habe ein Bild angehängt um es zu verdeutlichen ;)

Shift Combobox = 3 (für Nachtschicht) dann aktuelles Datum - 1 Tag

Ich ein wenig Erfahrung mit VBA im Excel doch im Access ist fast alles Neuland ^^

Mit freundlichen Grüssen
Und Danke im Voraus

andyfau

Hallo,

zuerst eine Anmerkung: Vermeide es reservierte Worte wie "Date" oder "shift" als Feldnamen zu nutzen. Das führt in VBA oder bei der Erstellung von Funktionen unweigerlich zu Problemen.

Zu deinem Problem:
Du kannst in die Eigenschaft "Steuerelementinhalt" des Datumsfeldes folgendes eintragen:

=Wenn([MeinCombo]=3;Datum()-1;Datum())
Wobei "MeinCombo" durch den Namen deines Combofeldes ersetzt werden muss.

ebs17

Das Bild mit großen blauen Flächen verdeutlicht gar nichts.
Wenn ich per Date-Picker mir ein Datum auswähle, wäre ich nicht sehr glücklich, wenn da irgendwie etwas automatisch verändert wird, denn wenn ich weiß, was ich will, wähle ich es gleich passend aus.

Daneben sollte man unterscheiden zwischen dem, was man einträgt, und dem, was man wie auswertet.
Wenn die Nachtschicht am 13.07. beginnt, gehört die in üblicher Betrachtung zu diesem Tag, auch wenn die Masse der Stunden am Folgetag anfällt. Auch am Beginntag fallen Stunden an, die kann man nicht einfach verschieben.

Das war bis jetzt nur einfache Logik, ohne Access, vermutlich recht allgemeingültig.

Eine Umsetzung (Verschiebung in einer Auswertung) ist abhängig vom Kontext. Bspw. kann man mit einem logischen Ausdruck in einer Abfrage arbeiten:

(Betrachtungsstunde < #6:00:00#)Das ergibt bei Nachtschicht True, also -1. Damit kann man addieren oder subtrahieren:
SELECT
   Arbeitstag - (Betrachtungsstunde < #6:00:00#) AS XX,
   [WeitereFeldliste]
FROM
   TabelleX
Mit freundlichem Glück Auf!

Eberhard

tohrr1

@andyfau Leider klappt das nicht
Im Textfeld kommt immer "#Name?" stehen. Ich hatte es auch mit ", " versucht

tohrr1

Habe es jetzt selbst rausgefunden :)

Im Steuerelementinhalt

=iif ([combobox]=3, date()-1, date())

Vielen Dank @andyfau dass du mich auf den richtigen Weg geleitet hast :)