"Stefan Kurz" <s.k...@kreutzpointner.de> schrieb im Newsbeitrag
news:eidrZOj#AHA.2044@tkmsftngp03...
Du könntest dir zum Beispiel die Tatsache zu Grunde legen das zwischen
Industriezeit und Normalzeit direkte Proportionalität vorhanden ist, also
musst du dir einfach nur mal diesen Faktor erechnen (5,75 / 5,45) auf dessen
Grundlage kannst du dann alle anderen Werten errechnen!
Falls du mit den Zeiten rechnen willst würde ich aber mit
den industriezeiten rechnen!
Allerdings: Probiers erstal an einigen Beispielen!
Tschau!
Michael
Darf ich es Dir zunächst als Pseudocode, bzw als Excel-Lösung geben:
In A1 steht Deine Industriezeit:
=GANZZAHL(A1)+REST(A1;1)*0,6
Ich bilde mir ein,man müßte es ungefähr so zusammenbasteln:
=Int([txtind]) + ([txtind]*100 Mod 100)*0,6/100
Helle
"Stefan Kurz" <s.k...@kreutzpointner.de> schrieb im Newsbeitrag
news:eidrZOj#AHA.2044@tkmsftngp03...
wenn ich dich recht verstehe, willst von einer Dezimalzeit 5,75 in
Stunden:Minuten umrechnen 5 h 45 min.
Ich habe da mal von jemanden hier aus der NG einen Code bekommen, ich
weis leider nicht mehr wer es war, vieleicht nützt der dir was
Gruss
Wolfgang
Public Function DezToMin(dblWert As Double) As String
Dim strMinute As String, strSekunde As String, strWert, dblZwWert As
Double
On Error GoTo Error_DezToMin
dblWert = Round(dblWert, 2)
strWert = CStr(dblWert)
'Umwandeln der Stunden von double in string'
If (InStr(1, strWert, ",") - 1) < 0 Then
'Überprüfung ob Minuten=0'
StrStunde = strWert
'wenn ja, dann setze strStunde gleich strWert'
DezToMin = StrStunde & " h " & "00" & " min"
'und gib zurück einen String bestehned aus strStunde "h" und 00 "min"
'
Else
'wenn Minuten vorhanden, dann'
StrStunde = Left$(strWert, InStr(1, strWert, ",") - 1)
'setze strStunde gleich dem Teil vor dem Komma'
dblZwWert = Round((dblWert - Val(StrStunde)) * 60, 0)
'und dblZwWert den gerundeten mit 60 mulitplizierten Teil nach dem
Komma'
SumMin = SumMin + dblZwWert
'aufaddieren der minuten wegen Rundungsfehler'
strMinute = CStr(Int(dblZwWert))
'Konvertieren der Minuten in einen String'
DezToMin = StrStunde & " h " & strMinute & " min"
'Rückgabe des Strings'
End If
Exit_DezToMin:
Exit Function
Error_DezToMin:
MsgBox Err.Description, , "DezToMin"
Resume Exit_DezToMin
End Function
in der abfrage
stdmindez:=hour(feld)+minute(Feld)/60
oder du schreibst eine kleine funktion und rufst diese aus der abfrage auf
=meinefunktion(feld)
gruss
peter
Hallo Stefan,
hier ein kleine Funktion die du beliebig verändern kannst.
' Eingabe: Zeiteinheiten (1h = 100ZE)
' Rückgabe: Stunden und Minuten in Form von
' h:m,Bruchteil der Minuten
Function ZeToHM(ZE As Double) As String
Dim H As Integer, M As Double
H = Fix("" & (ZE * 0.6) / 60)
M = (ZE - H * 100) * 0.6
ZeToHM = Trim(H) & ":" & Format(Int(M), "00") _
& Format(M - Int(M), ".00")
'Für h:mm:ss
'ZeToHM = Trim(H) & ":" & Format(Int(M), "00") _
& ":" & Right(Format((M - Int(M)) * 0.6, "#.00"), 2)
End Function
Gruss
Hans
> In einer Access-Tabelle hab ich eine Spalte mit z. B. Industriezeit ist 5,75
> Minuten. Jetzt will ich über eine Abfrage die Normalzeit errechnen. Die wäre
> in diesem Fall 5,45 Minuten. Wie muß ich vorgehen ???
da Access Uhrzeiten eh als Bruchteile von Tagen speichert, probier
mal:
? format(5.75/24,"long time")
05:45:00
;-) schön kurz, ne?
Gruss, Juergen