Zwei Zeiten über Tag hinaus rechnen

Hallo zusammen!

Habe diese Frage schon mal in die Runde gegeben, hab aber keine direkte Antwort darauf erhalten.

Ich habe zwei Felder. [Feld1] und [Feld2]. In denen gebe ich Zeiten an, [19:53] und [02:15]. Ich habe noch ein 3. Feld [Feld3] in dem sollte es mir die Differenz rechnen.
Dies habe ich im VB mit Me.Feld3 = DateDiff(„n“, Me.Feld1, Me.Feld2) gemacht. Nun aber, wenn es über Mitternacht geht, kapiert Access das nicht, und ich bekomme eine Minuszahl. Habt ihr eine Ahnung wie ich dies einstellen kann, damit er es richtig rechnet?

Danke für jede Hilfe (wenn sie ausführlich ist, damit ich es verstehe)

Gruss, Klaus.

Hallo Klaus,

wenn Du von Feldern sprichst, gehe ich mal von Textfeldern in einem Formular aus. Wenn du diesen das Uhrzeitformat SS:MM (17:45) vorgibst und dann einfach -> Feld3 = Feld1 - Feld2 [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Kristian,

Wenn ich 23:00 und 01:00 eingebe, sollte es mir 02:00 liefern.
Aber es gibt mir 22:00 Uhr aus, ich kann es auch verkehrt eingeben,
immer kommt 22:00 Uhr.
Es wäre auch noch toll wenn ich es dann in Minuten hätte.

Gruss Klaus.

Hallo Klaus,

wenn Du von Feldern sprichst, gehe ich mal von Textfeldern in
einem Formular aus. Wenn du diesen das Uhrzeitformat SS:MM
(17:45) vorgibst und dann einfach -> Feld3 = Feld1 - Feld2

Hallo,

nimm ein richtiges Datumsfeld dafür, kein Textfeld. Du brauchst das Format Datum + Uhrzeit. Dann sollte die DateDiff-Funktion korrekte Werte liefern. Schau mal in die Hilfe dazu, die Funktion kann die Differenz auch in Minuten ausgeben.

Intern behandelt Access Datumswerte als Zahlen: Volle Tage als Vorkommastellen, die Zeiten über Mitternacht hinaus als Nachkommastellen.

Ulrich

Hallo Ulrich

In meinem Formular habe ich Datumsfelder in denen ich solche Werte eingeben muss: 17:45
Bisher habe ich mit der DateDiff-Funktion meine Werte ausgerechnet
und es hat auch prima geklappt, es klappt nur nicht das Rechnen über Mitternacht und ich möchte das Datum nicht eingeben müssen.

Gruss, Klaus.

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

Mögliche Lösung?
Hallo Leute

Habe mir eine mögliche Lösung festgelegt.
Ich prüfe welche Zahl, dass grösser ist. Ist die 2. kleiner muss er mir über den Tag hinaus rechnen, oder so was. :-S

Ich rechne es im VB so:
Me.zeit11 = Wenn(Zeit2

Hallo,

ohne Datum weiss Access aber nicht, daß ein Datumswechsel (Mitternacht) stattgefunden hat.

Im Prinzip könntest Du au mit einer IF … Then …-Schleife überprüfen, ob Zeit2 (z. B. 00:25 Uhr) kleiner ist als Zeit1 (z. B. 17:45 Uhr) und dann die Intervalle 17:45 bis 23:59 und 00:00 bis 00:25 aufaddieren. Aber was passiert wenn ein Zeitintervall insgesamt größer als 24h ist? (Kommt wohl nicht vor?)

Ulrich

Hallo,

siehe mein anderes posting. Und schreib Me!zeit1 :smile:

Ulrich

Habe es so in VB eingegeben und es gibt keinen Fehler.
IF Me.Zeit2

Ich habs!
Hier falls es jemand interessiert:

If Me.zeit2