OVH Cloud OVH Cloud

somme des durée en temps function CVDate

2 réponses
Avatar
fettah
bonjour,
j ai une table avec deux colone en format txt obteneue par une extraction
le champ01: société le champ 02 : durée
le champ durée est formaté en heure xxxh:yymn
exemple des donées
soc01 43h:42mn
soc01 89h:8mn
soc02 43h:23mn
soc02 71h:19mn
soc01 53h:19mn
soc01 36h:18mn
je souhaiterais AFFICHER MA DUREE TOTAL PAR SOCIETE DANS UN FORMULAIRE
pour cela j ai fait la fonction suivante
#######################
Public Static Function sommedesduree()
Dim Totalhrs, Totalmin, Totalsec, minfrmsec, Hrsfrmmin As Integer
dim ma dureetotal as String
Dim Db As Database, tb As dao.Recordset
Dim def As QueryDef
Dim lst As String
lst = "SELECT *.* FROM société"
lst = lst & " WHERE ((([LISTE DES INTERVENTIONS].Société)= " & "'" & Me.société.Column(0) & "'));"
Set def = CurrentDb.CreateQueryDef("")
def.SQL = lst
Set tb = def.OpenRecordset()
Totalhrs = 0
Totalmin = 0
Totalsec = 0

While Not tb.EOF
Totalhrs = Totalhrs + Hour(CVDate(tb("Durée")))
Totalmin = Totalmin + Minute(CVDate(tb("Durée")))
Totalsec = Totalsec + Second(CVDate(tb("Durée")))
tb.MoveNext
Wend
tb.Close
minfrmsec = Totalsec \ 60
Totalsec = Totalsec Mod 60
Totalmin = Totalmin + minfrmsec

Hrsfrmmin = Totalmin \ 60
Totalmin = Totalmin Mod 60
Totalhrs = Totalhrs + Hrsfrmmin


Me.dureetotal.Value = Format(Totalhrs, "00") & ":" & Format(Totalmin, "00") & ":" & Format(Totalsec, "00")

End Function
####################
malheuresement ca fonction pas
bug a sur la fonction cvdate

2 réponses

Avatar
Xavier HUE
Bonjour fettah,

Le plantage sur CvDate est normal. Ta zone ne contient pas
d'expression de date valide.
Reporte toi à l'aide de la fonction CDate.

Pour résoudre ton problème, utilise les fonctions de
traitement de chaine alpha comme ceci par exemple:

Totalhrs = Totalhrs + mid$(tb("Duree"),1, instr(1, tb
("Duree"), "h:")-1) 'Extrait xxx de la chaine xxxh:yymn

Totalmin = Totalmin + mid$(tb("Duree"),instr(1, tb
("Duree"), "h:") + 2, 2)

Le cumul des secondes me semble inutile puisque
n'apparaissant pas dans ta zone Duree.

Cordialement.
Avatar
fettah
merci beaucoup Xavier cordialement fettah