Hallo
In meinem Bericht steet daß 419428 Sekunden berechnet werden
Ich möchte dieses jedoch in folgendem Format [hh]:nn:ss - so daß 116:30:28 das Resultat wird und nicht 20:30:28
Danke vielmals
Hallo,
dazu ist etwas Aufwand notwendig. Ich würde da eine Funktion anlegen.
Dazu folgender Code in einem allgemeinen Modul:
ZitatPublic Function fncFormathhmmss(GesSekunden As Long) As String
Dim Stunden As Long, Minuten As Long, Sekunden As Long
Stunden = GesSekunden \ 3600 'Achtung: \ = Backslash verwenden
Minuten = (GesSekunden - Stunden * 3600) \ 60
Sekunden = GesSekunden - Stunden * 3600 - Minuten * 60
fncFormathhmmss = Stunden & ":" & Format(Minuten, "00") & ":" & Format(Sekunden, "00")
End Function
Der Code wurde bewusst als Zitat dargestellt, da der Backslash im Code nicht dargestellt wird.
Aufruf im Berichtsfeld dann so:
=fncFormathhmmss(Sekundenzahl)
Hallo,
auch:
Public Function fktFormatSec(S As Long) As String
Dim lngH As Long, dblTime As Double
lngH = S \ 3600
dblTime = S / 86400
fktFormatSec = lngH & ":" & Format(dblTime, "nn:ss")
End Function
Hallo und vielen Dank erstmal
Leider verstehe ich folgendes nicht
"dazu ist etwas Aufwand notwendig. Ich würde da eine Funktion anlegen" Wo die Funktion anlegen? Abfrage oder Bericht?
"Dazu folgender Code in einem allgemeinen Modul" (verstehe ich leider auch nicht)
Ich habe jetzt im Bericht die Zein auf dezimal umgestellt und habe 116.51 Stunden - Resultat ist richtig :D
Wenn Ihr mir die Erklärung vereinfacht ändere ich meinen Bericht gerne noch einmal um da das Format 116:30:28 mir besser gefallen würde
Hallo,
ZitatWo die Funktion anlegen? Abfrage oder Bericht
Wurde doch gesagt:
in einem "allgemeinen Modul" (Standardmodul).
Im Ribbon/Erstellen "Modul" anklicken, damit der VBA-Editor geöffnet wird und eben ein Modul anlegt.
Dort eine der beiden (oder alle zwei) hineinkopieren.
Aufgerufen werden können dann die Funktionen dort, wo sie gebraucht werden. Im(!) Bericht z. B. im Steuerelementinhalt des Textfeldes, das dieses "Zeitformat" anzeigen soll:
= fncFormathhmmss([Sekundenfeld])
oder halt mit der anderen Funktion:
= fktFormatSec([Sekundenfeld])
Hallo,
ZitatIch habe jetzt im Bericht die Zein auf dezimal umgestellt und habe 116.51 Stunden - Resultat ist richtig
wie hast Du das auf dezimal umgestellt ?
Das Resultat ist nämlich nicht richtig. 116 Stunden ja, aber der Rest nicht.
0,51 Stunden = 60*0,51 = 30,6 Minuten. Rest 0,6 Minuten = 60*0,6 = 36 Sekunden.
116,51 = 116:30:36
116:30:28 = 116,507777777778 Stunden.
Du hast einen Rundungsfehler in der Umstellung auf dezimal.