Urgent, Format d'heure sous vb et access

Messages postés
9
Date d'inscription
lundi 22 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2002
-
Messages postés
9
Date d'inscription
lundi 22 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2002
-
Bonjour,

J'aimerais afficher et insérer des resultats de course avec vb et access. Je dois afficher l'heure, les minutes, les secondes, et les dixièmes de secondes.

Je trouve pas comment insérer et afficher les données, ni sous access, ni sous vb.

Ensuite je dois pouvoir obtenir le temps en soustrayant le temps d'arrivée au temps de départ et faire un classement entre les différents coureurs.

Quelqu'un serait il comment faire, svp.

3 réponses

Messages postés
33
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
17 mai 2004

Bonjour,

Il faut convertier les temps saisis en dixième de secondes. Un exemple en VBA dans Excel.

'On suppose que les temps sont saisis sous forme de chaines de caractères "hh.mm.ss.d"
'Excel mettant par défaut des virgules, le format de saisie sera "hh,mm,ss,d"

Sub test()
Dim T1 As String
Dim T2 As String
Dim T1_dix As Long
Dim T2_dix As Long
Dim Time_diff As Long

T1 = "10.25.30.5"
T2 = "11.12.45.2"

T1_dix = Dixieme_secondes(T1)
T2_dix = Dixieme_secondes(T2)

Time_diff = T2_dix - T1_dix

MsgBox Display_inter(Time_diff)

End Sub

Function Dixieme_secondes(Temp As String) As Long
Dim deb As Integer
Dim point As Integer
Dim ncar As Integer
Dim nb_val As Integer
Dim time_val As Integer
Dim time_len As Integer
Dim facteur As Long

Dixieme_secondes = 0

str_len = Len(Temp)
If str_len = 0 Then
Exit Function
Else
ncar = str_len
End If

nb_val = 0

deb = 1
point = InStr(deb, Temp, ".")
'remplacer "." par "," dans le cas "hh,mm,ss,d"

Do Until ncar = 0
time_len = point - 1
ncar = str_len - point

If point = 0 Then
point = str_len - ncar
time_len = 1
ncar = 0
End If

nb_val = nb_val + 1
time_val = Val(Mid(Temp, deb, time_len))

Select Case nb_val
Case 1
facteur = 36000
Case 2
facteur = 600
Case 3
facteur = 10
Case 4
facteur = 1
End Select

Dixieme_secondes = Dixieme_secondes + time_val * facteur

deb = point + 1
point = InStr(deb, Temp, ".")

Loop

End Function

Function Display_inter(Time_inter As Long) As String
Dim nb_dix As Integer
Dim nb_sec As Integer
Dim nb_min As Integer
Dim nb_hr As Integer

nb_hr = Int(Time_inter / 36000)
nb_min = Int(Time_inter - nb_hr * 36000) / 600
nb_sec = Int(Time_inter - nb_hr * 36000 - nb_min * 600) / 10
nb_dix = Int(Time_inter - nb_hr * 36000 - nb_min * 600 - nb_sec * 10)

Display_inter = Format(nb_hr, "00") & ":" & _
Format(nb_min, "00") & ":" & _
Format(nb_sec, "00") & ":" & _
Format(nb_dix, "00")

End Function

A toi d'améliorer. Courage

cmusy
Messages postés
9
Date d'inscription
lundi 22 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2002

Bonsoir,

C'est ce que je redoutais, je voulais juste etre sur qu'il y avait pas un moyen plus simple.

Merci beaucoup pour ton aide, et pour le code.

C'est tout un projet que je dois faire, et je rencontre pas mal de problèmes différents. Enfin tu m'enlèves déjà une épine du pied.

Merci encore.
Messages postés
9
Date d'inscription
lundi 22 juillet 2002
Statut
Membre
Dernière intervention
31 juillet 2002

Bonsoir,

C'est ce que je redoutais, je voulais juste etre sur qu'il y avait pas un moyen plus simple.

Merci beaucoup pour ton aide, et pour le code.

C'est tout un projet que je dois faire, et je rencontre pas mal de problèmes différents. Enfin tu m'enlèves déjà une épine du pied.

Merci encore.