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