Office: (Office 2013) Nachtzeiten

Helfe beim Thema Nachtzeiten in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, mit folgndem Code berechne ich den Zeitunterschied über 24 Stunden. Gesamt = DateDiff("n", Start, Ende) If Gesamt < 0 Then Gesamt =... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von silvergreen, 16. November 2016.

  1. Nachtzeiten


    Hallo Zusammen,

    mit folgndem Code berechne ich den Zeitunterschied über 24 Stunden.

    Gesamt = DateDiff("n", Start, Ende)
    If Gesamt < 0 Then Gesamt = + 1440
    Gesamt = Gesamt / 60 / 24 * 24

    Nun ist es so, dass ich mir automatisch ausrechnen lassen möchte, wieviele Stunden in der Zeit zwischen 20:00 Uhr und 05:00 Uhr angefallen sind.

    Vielen Dank für eure Hilfe.

    :)
     
    silvergreen, 16. November 2016
    #1
  2. Hallo,
    ich rechne 20:00 bis 24:00 danach 00:00 bis 05:00 und zähle beide Ergebnisse zusammen.
    Sollte das ganze in einer Zeiterfassung landen, würde ich die Buchung in 2 Buchungen aufsplitten.
    1. Buchung von 20:00 bis 24:00 (könnte ja ein Sonntag oder Feiertag sein)
    2. Buchung von 00:00 bis 05:00 (könnte ein normaler Arbeitstag sein)
    Das hätte Vorteile in Bezug auf die Auswertung eine Tages. (Sonn/Feiertagszuschlag) Ich kenne aber den Hintergrund nicht!

    Ist aber nur eine Idee von mehreren die man verwenden könnte!
    LG, Sivi
     
  3. Hallo Sivi,

    dazu müsste ich doch noch 2 zusätzliche Felder anlegen. Oder?
     
    silvergreen, 18. November 2016
    #3
  4. Nachtzeiten

    Hallo,
    nein, Du must den Datensatz kopieren, und danach im ersten Datensatz das Felder "BIS" mit 23:59:59" füllen. Im 2. Datensatz ersetzt Du im Feld "VON" mit 00:00. Danach kannst Du rechnen!

    LG, Sivi
     
  5. Das Rechnen innerhalb einer Zeitspanne von 24 Stunden geht auch mit einem Ausdruck. Im VBA Direktbereich: Code:
    IMO ist es jedoch besser, die Zeitpunkte mit Datumsanteil auszustatten.
     
  6. Hallo,

    vielen Dank für eure Antworten.

    Leider bin ich mit beiden Methoden nicht so ganz klar gekommen.

    Nehme ich Variante 1 und teile das Datum auf, rechnet er auch die Nachtzuschläge mit ein, wenn es später als 05:00 Uhr wird.

    Bei der VBA Methode bekomme ich den Hinweis:
    "Objekt unterstützt diese Eigenschaft oder Methode nicht."

    VG Silvergreen
     
    silvergreen, 19. November 2016
    #6
  7. Hallo Silvergreen,
    wenn Du Nachtzuschläge hast, die gehören in ein eigenes Datenfeld!
    Dann hast Du einerseits die tatsächliche Anwesenheitszeit und andererseits die Zuschläge, die ja eintreffen können oder aber auch nicht.
    Aber wie gesagt, wir kennen ja die eigentliche Grundproblematik nicht. Das es sich um eine Zeiterfassung handelt war ja nur eine Annahme von mir.
    Wahrscheinlich musst Du ja dann auch Feiertage berücksichtigen, bei denen gibt es im Normalfall ja auch noch Zuschläge. Die können dann am Beginn der Schicht eintreffen (1. Datensatz) oder am Ende ( 2. Datensatz).
    Eine simple Zeiterfassung wird so zur großen Software Lösung.
    Trotzdem noch viel Spaß und Erfolg beim Programmieren!
    LG, Sivi
     
  8. Nachtzeiten

    Hey,

    ne das sollte kein großes Softwareprojekt werden. Vielleicht habe ich die Frage auch zu umständlich gestellt Ich formuliere das mal anders.

    Ich erfasse im Feld Beginn eine Zeit (z.B. 18:00) und im Feld Ende eine Zeit (z.B. 01:00)

    Sind ja dann 7 Stunden gesamt. Diese 7 Stunden bekomme ich auch im Feld Gesamtstunden angezeigt. Nun möchte ich in dem Feld Nachtstunden 5 Stunden angezeigt bekommen. Nämlich die Zeit von 20:00 Uhr bis 01:00 Uhr.

    Ich suche quasi nach einer Lösung, welche mir errechnet wieviel Stunden in der Zeit zwischen 20:00 Uhr und 05:00 Uhr geleistet worden sind.

    VG Silvergreen
     
    silvergreen, 20. November 2016
    #8
  9. Hallo,
    sind diese Zeiten fix ?
    Kann es auch vorkommen, dass jemand von 18:00 bis 06:00 arbeitet ?
    Das sind dann 12 Ges.Std. und 9 Nachtstd. ?
     
    gpswanderer, 20. November 2016
    #9
  10. Hallo Klaus,

    genau so wie du es beschrieben hast meine ich es

    Es kann durchaus vorkommen das jemand von 18 - 6 arbeitet. In dem Fall wären es dann 9 Nachtstunden. Und genau so eine Formel suche ich, die mir das auseinander hält.

    Also die Frage an Accses: Wieviel Stunden wurden in der Zeit zwischen 20 und 05 Uhr gearbeitet.

    VG Silvergreen
     
    silvergreen, 21. November 2016
    #10
  11. Hallo,

    du kannst eine Funktion in der Abfrage verwenden, die dir das berechnet.
    Eine von mehreren Möglichkeiten:
    Code:
    Wenn - wie Nouba schon anmerkte - die Uhrzeit inkl. Datum gespeichert würde,
    wäre es um einiges einfacher. Eine Information wie "Herr Meyer hat um 16:000 Uhr
    begonnen"
    macht ohne eine Datumsangabe ja auch nicht wirklich Sinn, oder ?
     
  12. Hallo Marsu,

    dein Code war ein guter Denkansatz.

    Merkwürdigerweise läuft es nicht als function als sub aber schon. Warum auch immer. Aber ansonsten hat dein Code genau das getroffen, was ich gesucht habe. *Smilie

    Vielen Dank.
     
    silvergreen, 22. November 2016
    #12
  13. Nachtzeiten

    Hallo,
    das kann nicht sein, da ein Rückgabewert erzeugt wird, ist nur eine Funktion möglich.

    @Marsu
    Ich würde als Rückgabewert den Datentyp für Zeit (Double) verwenden.
     
    gpswanderer, 22. November 2016
    #13
  14. Hallo silvergreen,

    theoretisch, wenn auch wahrscheinlich praktisch eher selten, könnte eine Zeitspanne zwei Nachtschichten teilweise einbeziehen z. B.:
    Code:
    Hier ein Lösungsvorschlag nicht in VBA, sondern direkt in der Abfrage (Entwurfsansicht):
    Code:
     
  15. Hallo Klaus,

    doch ich habe es als public sub eingegeben und es geht.

    Hab die Felder angepasst und probiert.

    VG Silvergreen
     
    silvergreen, 25. November 2016
    #15
Thema:

Nachtzeiten

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden