Supportnet / Forum / Datenbanken
Datum() ohne Samstag und Sonntag
Frage
Hallo,
Es soll zu jeden neuen Datensatz das Datum des nächsten Tages automatisch erfasst werden (es handelt sich bei der Datenbank um eine Fahrzeug-Einteilung).
Das Access mir das Datum des nächsten Tages anzeigen soll, ist so kein Problem. Nur möchte ich an einem Freitag eben das Datum vom Montag haben...
Was Feiertage angeht, die kann man ja noch zur Not von Hand ändern; so viele sind es ja nicht mehr ;)
Danke schon mal vorab,
Thomas
Antwort 1 von Michael.schon.vergeben
Hi,
du meinst das sicher so:
- Ist der nächste Tag ein Samstag oder Sonntag, dann gehe zum ersten Tag der Woche (Montag).
- bzw.: Ist Freitag, dann zähle 2 Tage weiter und trage Montag ein
Montag als Wort oder das Datum, auf welches der Montag fällt?
du meinst das sicher so:
- Ist der nächste Tag ein Samstag oder Sonntag, dann gehe zum ersten Tag der Woche (Montag).
- bzw.: Ist Freitag, dann zähle 2 Tage weiter und trage Montag ein
Montag als Wort oder das Datum, auf welches der Montag fällt?
Antwort 2 von semi
Wenn's in Access-SQL die Funktion WEEKDAY(datum) gibt, die für Montag=0 ... Sonntag=6 liefert, dann kannst Du es wie folgt lösen.
Zu jedem Tag mit WEEKDAY(datum) >= 4
6 - ( WEEKDAY(datum) - 1 ) Tage dazu addieren.
Gruß,
Michael
Zu jedem Tag mit WEEKDAY(datum) >= 4
6 - ( WEEKDAY(datum) - 1 ) Tage dazu addieren.
Gruß,
Michael
Antwort 3 von Thomas B.
@Michael.schon.vergeben
Ja, so habe ich mir das gedacht, wobei der Montag
auf das Datum fällt, nicht auf das Wort...
Ja, so habe ich mir das gedacht, wobei der Montag
auf das Datum fällt, nicht auf das Wort...
Antwort 4 von Sandra P.
Hallo,
die folgende Funktion könnte Dir helfen. ;)
Viele Grüsse
Sandra
die folgende Funktion könnte Dir helfen. ;)
Public Function NextWorkingDay(DateValue As Variant) As Variant
Dim intWeekday As Integer
If Not IsDate(DateValue) Then
NextWorkingDay = Null
Else
intWeekday = Weekday(DateValue, vbMonday)
If intWeekday >= 5 Then
NextWorkingDay = DateValue + 7 - intWeekday + 1
Else
NextWorkingDay = DateValue + 1
End If
End If
End Function
Viele Grüsse
Sandra
Antwort 5 von Thomas B.
@Sandra,
Die Funktion ist mir plausibel, nur da ich im Bereich Nutzung von Visual Basic in Access ein absoluter Anfänger bin, müsste ich nur noch wissen, wie ich diese Funktion in das Datumsfeld meines Eingabe-Formulars einbaue...
Danke und Gruß,
Thomas
Die Funktion ist mir plausibel, nur da ich im Bereich Nutzung von Visual Basic in Access ein absoluter Anfänger bin, müsste ich nur noch wissen, wie ich diese Funktion in das Datumsfeld meines Eingabe-Formulars einbaue...
Danke und Gruß,
Thomas
Antwort 6 von semi
Da war ich voll auf dem falschen Dampfer :-)
Ich dachte Du wolltest alle falschen Einträge in der Datenbank nachträglich ändern.
Ich dachte Du wolltest alle falschen Einträge in der Datenbank nachträglich ändern.

