PDA

Vollständige Version anzeigen : umwandeln von [Dauer in min] in [hh:mm:ss] ... ?


Andre.Heisig
07.07.2006, 10:40
hi zusammen,

ich hab per SuFu leider nix passendes gefunden, obwohl ich mir nicht vorstellen kann, dass die Frage hier noch nie aufgetaucht ist :grins:

Wie kann ich einen feldinhalt "Dauer in Minuten" in Forms, Berichten, etc. in ein Darstellungsformat [hh:mm:ss] bringen?

Andre.

J_Eilers
07.07.2006, 10:49
Hi,

Format(xyz, "hh:nn:ss")? Ansonsten wären ein paar mehr Informationen von nöten.

FW
07.07.2006, 10:56
... Jan's Lösung dürfte wohl nicht zum Erfolg führen. Versuche es mit
DateAdd("n", dauer_in_minuten, CDate(0))...

Andre.Heisig
07.07.2006, 11:08
@Jan: hm, vielleicht hab ich's wirklich etwas knapp formuliert. Ich hab ein Datenfeld "Dauer", das mir bestimmte Prozesslaufzeiten in Minuten angibt. Ist leider in der DB so hinterlegt und nicht änderbar. Für die Anzeige in Forms, Berichten, etc. hätt ich aber gern statt "90 min" eine Anzeige von "01:00:00", weil's die Lesbarkeit erhöht.

@FW: DateAdd setzt doch aber ein Basisdatum voraus? Ich will nix drauf oder runter-rechnen, sondern nur die Darstellung des Zeitwertes umwandeln.

Verständlicher?

Andre.

FW
07.07.2006, 11:13
... mach', was man Dir sagt ;) CDate(0) ist das 0-Datum!
Wenn Du allerdings kein Datumswert benötigst, sondern nur einen String, dann sollte auch Folgendes funktionieren:
strZeit = FORMAT$(dauer_in_minuten \ 60, "00") & ":" & FORMAT$(dauer_in_minuten Mod 60, "00") & ":00"...

J_Eilers
07.07.2006, 11:15
Oder auch TimeSerial(0, 90, 0)

Andre.Heisig
07.07.2006, 11:54
irgendwas mach ich falsch ... keiner der Ansätze funktioniert hier. mehr details: besagtes Feld heisst cDauer, ich sitz aktuell grad an einem formular, welches diese dauer wiedergeben soll (gibt ja wohl schon mal syntaxunterschiede zwischen feldeigenschaften und VBA)

Variante DateAdd => in den Feldeigenschaften anstelle des Feldes cDauer eingetragen "=DatAdd("n";[cDauer];ZDate(0))" ergibt #Fehler.

variante =FORMAT$(cDauer/60, "00") & ":" & FORMAT$(cDauer Mod 60, "00") & ":00" meckert er schon beim eintragen. syntax-fehler? die blanks bei ... mod 60?

variante TimeSerial => =ZeitSeriell([cDauer]/60;[cDauer];0) gibt auch #fehler.

ich fürchte, ich steh grad mächtig auf dem schlauch :D

FW
07.07.2006, 11:59
...
1.) lass mal die äußeren " weg
2.) ersetze , mit ;
3.) wo da ein Fehler stecken könnte, seh' ich spontan nicht, aber =ZeitSeriell(0;[cDauer];0) sollte genügen...

J_Eilers
07.07.2006, 12:03
In welcher Feldeigenschaft gibst du das ein? Es ist aber nicht cDauer, welches du dort bearbeitest?

Andre.Heisig
07.07.2006, 12:07
1.) die waren nur hier für die optische abgrenzung, in meinem steuerelement standen die nicht ;-)
2.) dann geht die syntax prüfung durch, aber das form zeigt => #Fehler
3.) dito: syntax scheint ok, form zeigt => #Fehler

muss ich "weiter vorne" suchen? besagtes feld ist ein zahlenfeld, typ long integer. was für infos könnten noch helfen?

Andre.Heisig
07.07.2006, 12:08
@jan: in der des textfeldes cDauer, anstelle des steuer-elementinhaltes die formel. besser schon in der abfrage an sich? probier ich ...

Andre.Heisig
07.07.2006, 12:14
aha ... in der abfrage gehts, allerdings muss ich auf

=> =FORMAT$(cDauer/60, "00") & ":" & FORMAT$(cDauer Mod 60, "00") & ":00"

zurückgreifen, weil wir teilweise 4-stellige minuten-werte haben, und nach überschreitung der 24-stunden-marke scheint TimeSerial "umzukippen", dann stehen dort sehr merkwürdige ergebnisse.

fein. läuft. danke euch beiden ...

für's dazulernen: warum muss ich die umwandlung in der abfrage vornehmen, und nicht im form? (das feld steht im detailbereich eines endlosforms, hat das einfluss?) ... damit ich beim nächsten mal ein stück schlauer bin ...

J_Eilers
07.07.2006, 12:17
Normalerweise sollte es auch im Form gehen. Da ich aber gerade nicht weiß wo dein Ausgabefeld und dein Wertefeld liegt, kann ich da nur raten und dafür ists mir zu warm ;)

Andre.Heisig
07.07.2006, 12:19
ok, ich heb mir die frage für oktober auf und schau dann nochmal rein damit ;-))