Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Xoar am August 15, 2011, 21:57:05

Titel: Stundenberechnung über einen Tag hinaus....
Beitrag von: Xoar am August 15, 2011, 21:57:05
Hallo bin mir gerade nicht so sicher, ob ich den richtigen Weg einschlage...

Folgendes ich habe ein Formular wo ich oben einen Wochentag eintrage. z.B. 01.08.2011.
Nun habe ich in einem Unterformular mit zwei Listenfeldern ("von" und "bis"), in diesen wird ausgewählt wann man mit der Dienstzeit beginnt und endet.
Datensatzquelle dient dazu die tblDienzeiten, wo alle Dienstzeiten eingetragen sind. Gespeichert werden die Daten in tblDienstplan.

Problem ansich ist nun, dass in der Regel morgens um 07:30 Dienstbeginn ist und erst 24 Std später um 07:30 Dienstschluss. Jetzt weiß ich nicht wie ich die Dienstzeit in Std ermitteln kann. Ich habe halt kein Feld wo eingetragen wird 01.08.2011 ist um 07:30 Beginn und 02.08.2011 07:30 Schluss.

Habt ihr da ne Idee???

also bis jetzt hab ich ne Formel, aber die ist noch nicht komplett, bzw falsch:

Dienstzeit: Wenn([bis]<=24;[von]+[bis];24-[von]+[bis])

Liebe Grüße
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: Stapi am August 15, 2011, 22:37:09
Hallo Xoar

Schau mal hier:

http://www.donkarl.com/2.10

Vieleicht ist da´s was du suchst

Gruß Stefan
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: bahasu am August 16, 2011, 09:05:45
Moin,
vielleicht hilft auch: http://www.access-o-mania.de/forum/index.php?topic=13951.0

Harald

PS
Wieso ist die DonKarl-Seite nicht mehr aufrufbar?
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: DF6GL am August 16, 2011, 09:14:41
Hallo,

weil der Link falsch ist:

http://www.donkarl.com/?FAQ2.10
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: Jonny am August 16, 2011, 10:09:57
Hallo,
die Berechnung wird immer von + bis rechnen da bis immer kleiner als 24 ist. Die Uhrzeit ist intern ein Teil von einem ganzen Tag.
Nimm folgende Formel:
Dienstzeit: wenn([bis] < [von];1 - [von] + [bis];[bis] - [von])


Gruß

Johann
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: DF6GL am August 16, 2011, 10:54:38
Hallo,


wenn es sich hier um eine Arbeitszeit/Dienstzeit-Berechnung , die  mehrere Tage umfassen kann, handelt, schlage ich das Behandeln der Zeitwerte als Dezimalwerte in Stunden (1:45  == 1,75 h ), evtl. auch als Ganzzahlen in Minuten (1:45 == 105 min )vor.

Die Eingabe bzw. Ausgabe der Zeitwerte kann durchaus in gewohnten hh:mm-Format (mittels kleiner Umrechnungsfunktionen) erfolgen.


Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: Xoar am August 16, 2011, 19:17:51
Die Vorschläge sind schonmal nett, hab nur noch eine Denkblockade, oder noch ein Problem...

z.B. i.d.R. wird gearbeitet von 07:30 bis 07:30, tja wie soll nun berechnet werden, das dass 24 Std sind. Wie gesagt hab keine Eingabe, dass am 01. Dienstbeginn und am 02. Dienstende ist. Zweithäufigste Dienstzeit ist 07:30 bis 19:30, was wiederum ja ganz einfach zu berechnen ist.
Würde das ja mit ner if/wenn Formel machen, nur leider gibt es da so viele Möglichkeiten das dass wohl rausfällt.


Grüße
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: DF6GL am August 17, 2011, 09:03:49
Hallo,

solche Randbedingungen müssen halt ALLE  definiert und mit einer Plausifunktion behandelt werden....


Was ist, wenn z. B. 7:30 bis 7:35 gearbeitet wird?

ZitatWie gesagt hab keine Eingabe, dass am 01. Dienstbeginn und am 02. Dienstende ist.

Warum nicht?


.
.
If datediff("n",tVon,tBis) =0 then curStd=24
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: Xoar am August 17, 2011, 15:11:23
jo super so hat geklappt, allerdings nur für die eine Variante der Dienstzeiten.

Habs nun als Ausdruck direkt mit in die Abfrage eingebaut:

Dienstzeit: (Wenn(DatDiff("n";[von];[bis])=0;1440;DatDiff("n";[von];[bis])))/60     gibt mir dann auch halbe Std etc wieder.

///// edit

mir ist da gerade ne Idee gekommen, ich könnte doch auch dem Listenfeld eine Spalte hinzufügen (invisible) wo der 24std Tagcounter erst bei 07:30 beginnt und wieder in Stundenschritten bis 07:30 geht. Dann hab ich da ja max 24Std, und die könnte ich mit der DatDiffFunktion ja dann simpel berechnen.

Bsp.:

ID   Spalte_zum_rechnen       Spalte_zum_anzeigen      (Spalte zum rechnen, wird dann in die Tabelle eingetragen, womit die Abfrage rechnet)
1        00:00                                      07:30
2        00:30                                      08:00
3        01:00                                      08:30
.             .                                              .
.             .                                              .
.             .                                              .

Müsste doch ansich so klappen, oder?

PS: es wird NIE mehr als 24Std gearbeitet.


///edit 2

Habs mal so eingebaut. Scheint erstmal so zu klappen. Teste das heute Abend mal ausgiebig
Titel: Re: Stundenberechnung über einen Tag hinaus....
Beitrag von: bahasu am August 17, 2011, 17:44:11
Zitat von: Xoar am August 17, 2011, 15:11:23
Dienstzeit: (Wenn(DatDiff("n";[von];[bis])=0;1440;DatDiff("n";[von];[bis])))/60     gibt mir dann auch halbe

alternativ:
Wenn([von] = [bis];1440;DatDiff("n";[von];[bis]))/60

Harald