Neuigkeiten:

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

Mobiles Hauptmenü

Zeitdauer berechnen über Datum in Tabelle

Begonnen von Frank77, Februar 28, 2015, 05:33:58

⏪ vorheriges - nächstes ⏩

Frank77

Hallo!

Ich mochte ein einem Datenblatt Formular  für Aufträge folgendes umsetzen

Felder:
Auftrag_Detais_Datum_Von     Format     Datum kurz
Auftrag_Detais_Von                Format     Uhrzeit
Auftrag_Detais_Datum_Bis      Format     Datum kurz
Auftrag_Detais_Bis                 Format     Uhrzeit

Auftrag_Detais_Pause_Min       Format     zahl 2 Stellig für die Länge der Minuten

Das Auftrag_Detais_Dauer   soll ein berechnetes Feld sein das  die Dauer der Zeit als Dezimalzahl ausrechnet  also 8,74 stunden z.b.

Für den Bericht/Rechnung oder auch Zeiterfassung/Mitarbeiter kann ich das genze dann in einer abfrage genauer zerlegen wie ich es dann brauche

Auftrag_Detais_Datum_Von  28.02.2015
Auftrag_Detais_Von             23:00:00
Auftrag_Detais_Datum_Bis   01.03.2015
Auftrag_Detais_Bis              01:00:00
Auftrag_Detais_Pause_Min      30

Auftrag_Detais_Dauer       Berechnetes ergebniss ist dann -8,33333333284827E-02

mit der formel
([Auftrag_Detais_Datum_Von]+[Auftrag_Detais_Von])-([Auftrag_Detais_Datum_Bis]+[Auftrag_Detais_Bis])-Minute([Auftrag_Detais_Pause_Min])

Da komm ich nicht weiter

Gruß Frank



Selbstständig = Selbst und Ständig

ebs17

Hilfreich wäre ein besseres Verständnis zu Grundsätzliches und Zusammenfassendes über den Datum/Uhrzeit-Datentyp.

Kurz: DateTime-Werte sind intern Double-Zahlen. Dabei stellen die Ganzzahlanteile die Tage dar, die Dezimalanteile sind Bruchteile eines Tages:
Stunde ... 1/24
Minute ... 1/(24*60)

Daraus kannst Du dann notwendige Berechnungen ableiten.
Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
weiterhin wäre noch zu beachten, dass unterschiedlich gerechnet werden muss, wenn bei der Ende Zeit ein Datumswechsel (Mitternacht) dabei ist.
Gruß Klaus

Frank77

Hallo!

Erstmals danke für die antworten aber ich muss sagen des kapier ich echt nicht
Ich hab aber das hier gefunden
http://www.access-im-unternehmen.de/605

ich hab das Feld nun so berechnet  das Ergebnis ist auf dem Bild zu sehen  und die Beispiels DB ist aber 2010
wenn ich nur das Anfangs Datum habe und kein End Datum dann müsste es ja so heißen
Wenn([Auftrag_Detais_Bis]-[Auftrag_Detais_Von]>0;[Auftrag_Detais_Bis]-[Auftrag_Detais_Von];[Auftrag_Detais_Bis]-[Auftrag_Detais_Von]+1)*24

Ich hab aber das End Datum auch mit erfasst um bei einem Monatsübergang das Ganze noch splitten zu können und wenn ich richtig liege muss ich ja nur das höhere Datum vom niedrigen abziehen und mal 24 nehmen

Die Anzahl der Stunden wird ja richtig angezeigt allerdings wenn die Zeit nur 1 min lang ist dann
ist der Wert über 1 und das ist ja falsch
Wenn(([Auftrag_Detais_Datum_Bis]+[Auftrag_Detais_Bis])-([Auftrag_Detais_Datum_Von]+[Auftrag_Detais_Von])>0;([Auftrag_Detais_Datum_Bis]+[Auftrag_Detais_Bis])-([Auftrag_Detais_Datum_Von]+[Auftrag_Detais_Von]);([Auftrag_Detais_Datum_Bis]+[Auftrag_Detais_Bis])-([Auftrag_Detais_Datum_Von]+[Auftrag_Detais_Von])+1)*24

Und es ist auch so dass bei beiden Formeln  das Ergebnis abweicht

Gruß Frank


Selbstständig = Selbst und Ständig

Frank77

#4
Hallo! :-)

Also so scheint es zu funktionieren aber nur scheinbar  ;D
(((([Auftrag_Detais_Datum_Bis]+[Auftrag_Detais_Bis])-([Auftrag_Detais_Datum_Von]+[Auftrag_Detais_Von]))*(24*60))-[Auftrag_Detais_Pause_Min])/60

ich rechne die minuten aus und ziehe die pause ab und rechne das ganze wieder in studen um was tirisch nervt ist das die nachkommastellen trotzden x lang sind obwohl ich in der tabelle nur 2 stellen einstelle
soweit so gut aber wenn die zeit spanne unter 5 min  oder 10 min ist dann geht es nicht Bzw der genaue wert ist unklar  auf den bild ist es datensatz 9 - 11

edit Update:
weiteres berechnetes feld eingefügt für Minuten und siehe da aus datensatz 9 werden 6 Minuten
Runden([Auftrag_Detais_Dauer]*60;0)
Runden kann ich aber nur in einem extra Feld den sonst bekomme ich die meldung Syntax fehler

Gruß Frank
Selbstständig = Selbst und Ständig

MzKlMu

Hallo,
Ich würde das ganze Vorhaben ohnehin in eine Funktion auslagern, das ist viel übersichtlicher. Außerdem sollte Datum und Zeit in ein Feld und nicht getrennt sein, das mach es auch übersichtlicher. Die Werte musst Du so und so eingeben.
Außerdem würde ich alles in Tagen rechnen, dann musst Du erst mal gar nichts umrechnen außer der Pause, die ist in Tage umzurechnen (Minuten/1440 = Tage als Dezimalzahl). Wenn Du mit DatumZeit Werten direkt rechnest erhältst Du immer Tage.

Erstelle eine Beispieldb im Access2003 (MDB) Format. Ich habe leider nur Access2003.
Gruß Klaus

Frank77

Hallo!
Danke werde ich versuchen

Ich hab ein solches Beispiel erstellen wollen aber in der version gibt es keine berechneten felder in der tabelle
Selbstständig = Selbst und Ständig

MzKlMu

Hallo,
lasse die berechneten Felder weg, die braucht sowieso kein Mensch, die sollte man auch nicht verwenden. Gerechnet wird in Abfragen.

Erstelle einfach mal eine Tabelle mit den Feldern und beschreibe was Du rechnen willst. Damit man das nicht nachbauen muss.
Gruß Klaus