Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Cira am Januar 02, 2012, 09:32:53

Titel: Format für Zeitmessung?
Beitrag von: Cira am Januar 02, 2012, 09:32:53
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
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 02, 2012, 10:16:00
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
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 02, 2012, 10:32:12
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
Titel: Re: Format für Zeitmessung?
Beitrag von: MzKlMu am Januar 02, 2012, 10:56:02
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)
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 02, 2012, 10:58:46
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
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 02, 2012, 11:00:15
Hallo,
Beim Bob-Fahren sind es aber Millisekunden  ::)

Andreas
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 02, 2012, 13:36:52
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!
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 02, 2012, 14:43:21
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??
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 02, 2012, 15:12:16
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]
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 02, 2012, 15:59:33
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!! :-(
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 02, 2012, 19:39:28
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
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 03, 2012, 08:04:58
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...
Titel: Re: Format für Zeitmessung?
Beitrag von: Hondo am Januar 03, 2012, 08:20:15
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
Titel: Re: Format für Zeitmessung?
Beitrag von: Cira am Januar 03, 2012, 10:13:20
Hey,

super das is eine Idee!

Danke Cira