Neuigkeiten:

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

Mobiles Hauptmenü

Format für Zeitmessung?

Begonnen von Cira, Januar 02, 2012, 09:32:53

⏪ vorheriges - nächstes ⏩

Cira

Hallo,

habe ein Tabellenfeld "Zeit", da soll die Geschwindigkeit eines Rennläufers in Zeit mit Zehntelsekunde eingegeben werden.

Habe es schon mit allen möglichen varianten versucht. "nn:ss.00" nimmt er leider nicht! :-(

Kann mir da wer helfen?

LG Cira

Hondo

Hallo,
die kleinste Einheit ist doch millisekunden - oder?
Dann benütze doch ein LongInteger oder Double Datentyp und speichere die Zeit in ms.
Umrechnen von /nach sollte ja kein Problem sein.

Gruß Andreas

Cira

ja stimmt Milisekunden!!  :D War verwirrt von anderem Beitrag hier!
hm weiß jetzt mit deiner Lösung nicht so richtig etwas anzufangen...   :-\

folgender Ablauf ist gegeben:
ich (bzw. der anwender) bekomme vom Zeitnehmerteam die Zeitmessungen (z.B.: 01:44.20) aller Rennläufer und muss diese in die Datenbank einspielen, damit ich dann daraus einen Bericht "Rangliste" drucken kann.

Wenn Umrechnung von ms in in gewünschtes Format erfolgen muss, dann muss das automatisch erfolgen.
Geht das?

LG Cira

MzKlMu

Hallo,
es sind keine Millisekunden, sondern Hundertstel (Zentisekunden).
Du musst die Zeit in einem separaten Feld eintragen. Nach Aktualisierung des Feldes dann die hundertstel ausrechen und dem Zahlenfeld zuweisen.
(Minuten*6000( + (Sekunden * 100) + Hunderstel
Die Klammern dienen nur der Übersicht, sind an sich überflüssig.
Dein Beispiel sind 10420 Zentisekunden (Hundertstel)
Gruß Klaus

Hondo

Hallo,
ist doch recht einfach.
Mach ein Eingabeformular mit den Feldern StarterID, Minuten, Sekunden und Millisekunden.
StarterID z.B. als Kombinationsfeld.
Dann gibst du zu einem Starter die Werte ein und drückst auf speicher-Button.
Die Prozedur darin wandelt deine Eingaben in Millisekunden um
1 Sekunde = 1000 Millisekunden
1 Minute = 60 * 1000 Milisekunden

Beispiel:
8:12.366

  60.000 * 8
+ 1.000 * 12
+ 366

Ergebnis: 492.366 Millisekunden

Das lässt sich per VBA ganz einfach automatisieren.
Umrechnung zurück nach Minuten:Sekunden.Millisekunden geht im Prinzip so,
indem du zuerst prüfst wie oft passt 60.000 in das gespeicherte Ergebnis => Minuten
dann mit dem Rest prüfst wie oft 1.000 hinein passt => Sekunden
Der verbleibende Rest sind die Millisekunden.

Gruß Andreas

Hondo

Hallo,
Beim Bob-Fahren sind es aber Millisekunden  ::)

Andreas

Cira

danke für die hilfe. aber als "ganz einfach" würde ich es nicht bezeichnen!!

ich werde es jetzt so machen, dass ich die Millisekunden gleich in der Exceltabelle berechnen lasse, und die Werte dann in die Tabelle kopiere. Dann lasse ich in einem weiteren Feld (nach Öffnen des Formulars) den Wert berechnen in jedem Datensatz!

und jetzt muss ich mir  das "ganz einfache" noch ausklügeln!

Cira

so also habe diesen Code erstellt für Form_open:

Dim Min As Long
Dim Sec As Long
Dim Milsec As Long
Dim Zeitmessung As String

Milsec = Me!bewerb_zeit

  Min = Int(Milsec / 60000)
  Sec = Int((Milsec - (Min * 60000)) / 1000)
  Milsec = Milsec - (Min * 60000) - (Sec * 1000)
  Zeitmessung = Format$(Min, "00") & ":" & Format$(Sec, "00") & "." & Format$(Milsec, "00")

da wird mir der wert zwar richtig berechnet aber nur im ersten DS und dann für alle übernommen... aber das liegt wahrscheinlich daran dass ich das in einem ungebundenen Feld berechnen hab lassen.... aber wie binde ich ein berechnetes Feld??

Hondo

Ich hab dir mal ein Beispiel gemacht.
Gruß Andreas

PS: ich glaube zum herunterladen musst du dich registrieren (kostenlos natürlich)

[Anhang gelöscht durch Administrator]

Cira

wow danke danke für die viele arbeit!

aber ich brauche ja jetzt die umgekehrte version. von "ms" in "mm:ss.ms", denn das muss dann auch so in einem Bericht aufscheinen.

sicher ich könnte die drei Felder Minute, Sekunde und Millisekunde auch im Bericht zusammenfügen und dann jeweils ":" und "." dazwischenschieben. Aber gehts nicht viel einfacher??

Geht mein Code denn gar nicht??

sorry wenn ich dich zur verzweiflung bringe!! :-(

Hondo

Schau dir doch mal den Code an.
im Ereignis After Update werden Millisekunden umgerechnet in Minuten, Sekunden und Hunderstel Sekunden.
Die Formeln sind:

Minuten = Fix(Wettkampfzeit / 60000)
rest =Wettkampfzeit - Val(Minuten) * 60000
Sekunden = Fix(rest / 1000)
rest = rest - Sekunden * 1000
Hundertstel = rest / 10


Gruß Andreas

Cira

ich weiß, und die Rechnung entspricht ja auch meiner Rechnung. Also soweit ok...

Aber das Problem ist ja auch
1. das Anzeigen in einem Endlosformular und
2. das Speichern des Wertes bzw. das Mitnehmen in eine Abfrage um daraus dann einen Bericht mit den Rennzeiten zu erhalten.

Kann doch gar nicht sein, dass noch niemand eine DB für Sportveranstaltungen geschrieben hat wo Rennzeiten ausgegeben werden, oder?! ich finde einfach nichts!! :-(
Letzte Chance Excel...

Hondo

Hallo,
erstelle in einem Modul eine globale Funktion MsToZeit und eine ZeittoMS mit dem entsprechendem Code.
diese Funktion kannst du dann überall einfügen, z.b. in einer Abfrage.

Andreas

Cira

Hey,

super das is eine Idee!

Danke Cira