Access Zeitenberechnung

Ich möchte 2 Felder (Minuten:Sekunden:Tausendstel) addieren. Wie bekomme ich das hin?
Beispiel
Feld1 00:48:123
Feld2 00:48:001
Gesamt 01:36:124

Das Anzeigen von Tausendstel ist im Datumformat Access so viel ich weiss bisher nicht vorgesehen. Berechnen kann Access jedoch auch Tausendstel:
Beispiel Access-Abfrage
001: #00:00:48#+(1/24/60/60/1000*123)
002: #00:00:48#+(1/24/60/60/1000)
Ergebniss =
003: [001]+[002]

Die Darstellung geht wie gesagt nur sekundengenau im Datumformat. Als Text umgewandelt kannst du auch Tausendsel anzeigen. Siehe hierzu

http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_Wettka…

Hallo Joachim,

du kannst in der Tabelle die Zeit in verschiedene Felder aufspalten, also Feld1 = Stunden, Feld2 = Minuten, Feld3 = Sekunden, Feld4 = Tausendstel (Feldtypen alle als Zahl!). In einer Abfrage addierst du dann die entsprechenden Felder, also Summe Feld1, usw… In einer zweiten Abfrage bildest du aus den Summen durch Umrechnung von Sekunden auf Minuten und Minuten auf Stunden dann die Gesamtzeit. Eine entsprechende Formel müsstest du dir entwickeln.

Soweit das Prinzip. Es wird natürlich kompliziert, wenn in der Tabelle mehrere Zeitfelder, wie in deinem Beispiel, vorhanden sein sollen.

Gruß
Horst Müller

Hallo!

ich war in der vergangenen Woche in Urlaub. Wurde die Frage bereits beantwortet?

Viele Grüße
Christian Knell

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

sorry, dass ich erst jetzt antworte, aber ich hab´s nicht hingekriegt, mein Passwort zu ändern. :frowning:

Ich hab für Dich eine Funktion geschrieben, mit der Du genau das erreichen kannst. Voraussetzung ist allerdings, dass die Zeiten in dem von Dir geschriebenen Format (mm:ss:ttt) vorliegen. Dann kannst Du in einer Abfrage, nach dem Du den Code in einem Modul hinterlegt hast, die Funktion wie folgt verwenden:

Zeitaddition(„erster Wert“,„zweiter Wert“)

also um bei Deinem Beispiel zu bleiben

Zeitaddition(„00:48:123“,„00:48:001“)

Das Ergebnis ist dann das von Dir gewünschte.

Ich hoffe, ich konnte helfen.

Viele Grüße

Michael

--------------------- Hier die Funktion
Public Function Zeitaddition(ByVal feld1 As String, ByVal feld2 As String)
'© Michael Theymann, 2010
'Format: mm:ss:tausendstel
Dim addition
Dim Ergebnis
Dim Zwischenergebnis

'Zuerst Tausendstel addieren
Zwischenergebnis = Val(Right(feld1, 3)) + Val(Right(feld2, 3))
If Zwischenergebnis > 999 Then
addition = Val(Left(Zwischenergebnis, 1))
End If

'Ergebnis der Tausendstel füllen
Ergebnis = Right(Zwischenergebnis, 3)

'Jetzt Sekunden addieren
Zwischenergebnis = Val(Mid(feld1, 4, 2)) + Val(Mid(feld2, 4, 2)) + addition
addition = 0
If Zwischenergebnis > 59 Then addition = Int(Zwischenergebnis / 60)
Ergebnis = Format(Zwischenergebnis Mod 60, „00“) & „:“ & Ergebnis

'Jetzt Minuten addieren
Zwischenergebnis = Val(Mid(feld1, 1, 2)) + Val(Mid(feld2, 1, 2)) + addition
addition = 0
If Zwischenergebnis > 59 Then addition = Int(Zwischenergebnis / 60)
Ergebnis = Format(Zwischenergebnis Mod 60, „00“) & „:“ & Ergebnis

'Nun noch Stunden errechnen
If addition 0 Then Ergebnis = addition & „:“ & Ergebnis

Zeitaddition = Ergebnis
End Function

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

vielen Dank, habe jetzt schon länger nicht mehr daran gearbeitet, werde mich mal dranmachen und dir dann berichten.
Gruß und schönen Tag
Joachim

Halli, viiiiiiiiiiiiiiiiiiiielen Dank. So hab ich mir das gedacht.
Schönes Wochenende
Gruß
Joachim