Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Sekundendauer in Zeitformat

Begonnen von Manon, August 12, 2015, 09:02:45

⏪ vorheriges - nächstes ⏩

Manon

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
Gruß
Manon :-)

MzKlMu

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)
Gruß Klaus

DF6GL

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


Manon

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
Gruß
Manon :-)

DF6GL

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])

MzKlMu

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.
Gruß Klaus