Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zeitberechnung mit Zeitstrafe

Begonnen von malram, Oktober 20, 2016, 10:11:22

⏪ vorheriges - nächstes ⏩

malram

Hallo zusammen,
bei einem Wettkampf gibt es mehrere Stationen die anzulaufen sind. Diese reine Laufzeit wurde berechnet und die Ausgabe funktioniert mit Access einwandfrei in hh:mm. Angenommen die geleistete Laufzeit ist höher als 02:20 (140min) dann sollen pro Minuten die mehr gelaufen werden 1 Punkt als Strafpunkte erzeugt werden, und diese Strafpunkte sollen dann auch nur angezeigt werden sobald diese "Zeitgrenze von 02:20" überschritten werden.
Kann mir jemand dabei helfen?

MzKlMu

Hallo,
ZitatDiese reine Laufzeit wurde berechnet
wie wird die berechnet.
Sind die 140min als Grenze immer fest, oder kann sich das im Laufe der Zeit mal ändern ?
Gruß Klaus

malram

Hallo, danke für die schnelle Antwort.

Die 140Min sind ein fester Grenzwert.

MzKlMu

Gruß Klaus

malram

Sorry, hab ich übersehen.
Ich habe Felder mit Ankunftzeiten und Abgangszeiten der einzelnen Stationen erstellt, anschließend ein berechnetes Feld, das die Laufzeiten errechnet, in meinem Fall:
([A2An]-[A1Ab])+([A4An]-[A2Ab])+([A5An]-[A4Ab])+([A7An]-[A5Ab])+([A11An]-[A7Ab])+([A12An]-[A11Ab])

MzKlMu

Hallo,
welcher Datentyp haben die Felder (A2An ...)  in der Tabelle ?
Wie werden die Daten erfasst, mit Datum oder nur die reine Zeit ?
Ist das berechnete Feld in der Abfrage oder im Formular ?
Gruß Klaus

malram

Hallo,
der Datentyp ist Datum/Uhrzeit, die Daten werden mit der Uhrzeit erfasst als Bsp 11:24 usw. Das berechnete Feld ist in der selben Tabelle wie die An- u. Abgangszeiten auch.

MzKlMu

#7
Hallo,
auf Tabelleneben geht das nicht. Verschiebe das Berechnen in eine Abfrage mit der Tabelle als Datenbasis. Das Feld in der Tabelle löschen.
Laufzeit: ([A2An]-[A1Ab])+([A4An]-[A2Ab])+([A5An]-[A4Ab])+([A7An]-[A5Ab])+([A11An]-[A7Ab])+([A12An]-[A11Ab])
Dann in der Abfrage ein weiteres Feld:
Strafpunkte: Wenn((([A2An]-[A1Ab])+([A4An]-[A2Ab])+([A5An]-[A4Ab])+([A7An]-[A5Ab])+([A11An]-[A7Ab])+([A12An]-[A11Ab]))*1440) > 140;(([A2An]-[A1Ab])+([A4An]-[A2Ab])+([A5An]-[A4Ab])+([A7An]-[A5Ab])+([A11An]-[A7Ab])+([A12An]-[A11Ab])*1440)-140;"")
ungetestet, hoffentlich habe ich die Klammern richtig abgezählt.
Da die Berechnung in der Strafpunkteformel wiederholt werden muss, gibt das eine ziemliche Lange Formel. Ich würde daher die Berechnung in eine Funktion auslagern.

Achtung es gibt 1440 und 140, die Multiplikation mit 1440 erzeugt die Minuten für den Vergleich.
Gruß Klaus

malram

Hallo Klaus,
danke für die Hilfe.
Allerdings erscheint beim eingeben des zweiten Codes ein Hinweis: "Der von Ihnen eingegebene Ausdruck enthält eine Funktion, für die die falsche Anzahl von Argumenten angegegeben ist."

Beaker s.a.

Hallo Klaus,
Zitatauf Tabelleneben geht das nicht
Das kennt man von dir ja gar nicht, dass du eine Lösung präsentierst, die auf einem
IMO unkorrektem Datenmodell beruht.
Die Laufzeiten gehören doch in eine eigene Tabelle mit einem geeigneten FK zur
bestehenden Tabelle (wird sich da wohl finden lassen), und brauchen in einer Abfrage
nur noch summiert werden um die Strafpunkte zu berechnen.
Oder ist dies mal wieder so ein Schnellschuss von mir und ich habe was übersehen?
I.Ü. würde ich, auch wenn jetzt (noch) fest, den Grenzwert parametrisieren.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
Du musst die Formel Stück für Stück einsetzen. Irgendwo stimmt da eine Klammerung nicht. Funktioniert die erste Formel ?

@ekkehard
ZitatOder ist dies mal wieder so ein Schnellschuss von mir und ich habe was übersehen?
nein, Dein Einwand ist berechtigt. Ich habe als ich die Zahlen in den Feldnamen sah auch spontan daran gedacht. War dann aber so faul und habe es unterlassen. Aber es rächt sich immer, es gibt immer jemand er es merkt.  ;D

@malram
Gemäß dem Einwand von ekkehard wäre das Datenmodell zu überdenken. Die Laufzeit der Stationen sollte in eine eigene Tabelle ausgelagert werden mit einem Fremdschlüssel zur jetzigen Tabelle. Dann wäre es nur eine gruppierte Abfrage.
Es hätte auch den Vorteil, dass die Anzahl der Stationen keine Rolle mehr spielt.
Gruß Klaus

malram

Vielen Dank für Eure Hilfe, werde so glaube ich, das ganze Modell nochmal komplett überdenken.

Beaker s.a.

Hallo,
@malram
Ja, mach mal, du wirst es dir später danken.

@Klaus
Danke für Bestätigung.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)