OVH Cloud OVH Cloud

course et classement tps

16 réponses
Avatar
ls
Bonjour à tous et à toutes.

Je dois gérer une liste de coureurs pour une course de vtt. J'ai toutefois
un pb avec les classements. Il faudrait que je puisse entrer le tps des
coureurs assez précisément

heure, minute, seconde, centième

Puis je le faire avec Access ?

Merci pour vos réponses et vos conseils éclairants.
Ls

10 réponses

1 2
Avatar
www.eztree-msdn.com \(Laurent Jordi\) Enlever le s à infos pour me contacter par mail
Salut...

Le format date n'allant pas jusqu'au centiemme tu devras créer un champ
supplémentaire pour saisir cette valeur.

Pour l'ordre il te faudra ensuite faire un tri composé...

ORDER BY dteArivee DESC,Centièmes DESC


Access Triera les VVTistes et groupeuras ceux qui sont arrivés dans la même
seconde puis trira ce sous groupe par centième.


Dans l'éditeur de requete il te suffira de mettre les deux champ dans cet
ordre et de leur affecter le tri décroissant

@+

LJ

www.eztree-msdn.com


"ls" <laurent.saloperie a écrit dans le message
de news:40960c56$0$17903$
Bonjour à tous et à toutes.

Je dois gérer une liste de coureurs pour une course de vtt. J'ai toutefois
un pb avec les classements. Il faudrait que je puisse entrer le tps des
coureurs assez précisément

heure, minute, seconde, centième

Puis je le faire avec Access ?

Merci pour vos réponses et vos conseils éclairants.
Ls




Avatar
ls
merci je regarde ça

"www.eztree-msdn.com (Laurent Jordi) Enlever le s à infos pour me contacter
par mail" a écrit dans le message de
news:%23JROk%
Salut...

Le format date n'allant pas jusqu'au centiemme tu devras créer un champ
supplémentaire pour saisir cette valeur.

Pour l'ordre il te faudra ensuite faire un tri composé...

ORDER BY dteArivee DESC,Centièmes DESC


Access Triera les VVTistes et groupeuras ceux qui sont arrivés dans la
même

seconde puis trira ce sous groupe par centième.


Dans l'éditeur de requete il te suffira de mettre les deux champ dans cet
ordre et de leur affecter le tri décroissant

@+

LJ

www.eztree-msdn.com


"ls" <laurent.saloperie a écrit dans le
message

de news:40960c56$0$17903$
Bonjour à tous et à toutes.

Je dois gérer une liste de coureurs pour une course de vtt. J'ai
toutefois


un pb avec les classements. Il faudrait que je puisse entrer le tps des
coureurs assez précisément

heure, minute, seconde, centième

Puis je le faire avec Access ?

Merci pour vos réponses et vos conseils éclairants.
Ls








Avatar
3stone
Salut,

"ls"
Je dois gérer une liste de coureurs pour une course de vtt. J'ai toutefois
un pb avec les classements. Il faudrait que je puisse entrer le tps des
coureurs assez précisément

heure, minute, seconde, centième

Puis je le faire avec Access ?




Pas directement avec un champ date
(ni avec un champ date et un champ centième),
car Access ne connait pas de durée en temps, mais uniquement
une date et heure (un instant donné)

Je te conseille d'utiliser un/des champs numériques et, pour l'affichage
et transformation vers une expression standard, de te servir des
fonctions que tu trouvera ici:
http://mypage.bluewin.ch/w.stucki/CalculsDates.htm



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
ls
Pas très clair pour moi qui ne suit pas un pro d'access ...
Pourrais tu me donne un peu plus d'explication stp. Merci

"3stone" a écrit dans le message de
news:%
Salut,

"ls"
Je dois gérer une liste de coureurs pour une course de vtt. J'ai
toutefois


un pb avec les classements. Il faudrait que je puisse entrer le tps des
coureurs assez précisément

heure, minute, seconde, centième

Puis je le faire avec Access ?




Pas directement avec un champ date
(ni avec un champ date et un champ centième),
car Access ne connait pas de durée en temps, mais uniquement
une date et heure (un instant donné)

Je te conseille d'utiliser un/des champs numériques et, pour l'affichage
et transformation vers une expression standard, de te servir des
fonctions que tu trouvera ici:
http://mypage.bluewin.ch/w.stucki/CalculsDates.htm



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
3stone
re,

"ls"
Pas très clair pour moi qui ne suit pas un pro d'access ...
Pourrais tu me donne un peu plus d'explication stp. Merci



Inutile d'être un pro d'Access pour cela ;-)


Le principe est, par exemple, de tout tranformer en seconde...
et les centièmes seront la partie décimale.
Donc un champ numérique de type double!

Ensuite, une fonction comme celle indiquée ci dessous
(qu'il suffit d'adapter pour les centièmes) fera l'affaire
pour l'affichage en un format plus habituel...

http://mypage.bluewin.ch/w.stucki/CalculsDates.htm#ConvSecHrs


L'adaptation pourrait être celle-ci:
(que tu colle dans un module standard et que tu nomme "mod_ConvertTime"


Public Function ConvSecEnHeures(Secondes As Double) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
Dim Heures As Long, Minutes As Byte, Sec As Byte, Cent As Byte

Cent = (Secondes * 100) - (Int(Secondes) * 100)
Secondes = Int(Secondes)

If Secondes > 0 Then
Sec = Secondes Mod 60
Secondes = Secondes - Sec
Minutes = (Secondes Mod 3600) / 60
Secondes = Secondes - Minutes * 60
Heures = Secondes 3600
ConvSecEnHeures = Format(Heures, "00") _
& Format(Minutes, ":00") _
& Format(Sec, ":00") _
& Format(Cent, ":00")
End If
End Function



Après, pour l'utilisation, il suffit d'utiliser cette fonction
lorsque tu désire obtenir un affichage "hh:mm:ss:cc"

Dans une requête:

Durée: ConvSecEnHeures([TonChampNumérique])

ou dans un formulaire ou un état (dans un contrôle indépendant):

= ConvSecEnHeures([TonChampNumérique])



Si tu as des difficultés pour la saisie et transformation inverse, revient...

;-)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
ls
Merci je regarde ça demain

"3stone" a écrit dans le message de
news:
re,

"ls"
Pas très clair pour moi qui ne suit pas un pro d'access ...
Pourrais tu me donne un peu plus d'explication stp. Merci



Inutile d'être un pro d'Access pour cela ;-)


Le principe est, par exemple, de tout tranformer en seconde...
et les centièmes seront la partie décimale.
Donc un champ numérique de type double!

Ensuite, une fonction comme celle indiquée ci dessous
(qu'il suffit d'adapter pour les centièmes) fera l'affaire
pour l'affichage en un format plus habituel...

http://mypage.bluewin.ch/w.stucki/CalculsDates.htm#ConvSecHrs


L'adaptation pourrait être celle-ci:
(que tu colle dans un module standard et que tu nomme "mod_ConvertTime"


Public Function ConvSecEnHeures(Secondes As Double) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
Dim Heures As Long, Minutes As Byte, Sec As Byte, Cent As Byte

Cent = (Secondes * 100) - (Int(Secondes) * 100)
Secondes = Int(Secondes)

If Secondes > 0 Then
Sec = Secondes Mod 60
Secondes = Secondes - Sec
Minutes = (Secondes Mod 3600) / 60
Secondes = Secondes - Minutes * 60
Heures = Secondes 3600
ConvSecEnHeures = Format(Heures, "00") _
& Format(Minutes, ":00") _
& Format(Sec, ":00") _
& Format(Cent, ":00")
End If
End Function



Après, pour l'utilisation, il suffit d'utiliser cette fonction
lorsque tu désire obtenir un affichage "hh:mm:ss:cc"

Dans une requête:

Durée: ConvSecEnHeures([TonChampNumérique])

ou dans un formulaire ou un état (dans un contrôle indépendant):

= ConvSecEnHeures([TonChampNumérique])



Si tu as des difficultés pour la saisie et transformation inverse,
revient...


;-)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
ls
J'ai un autre souci maintenant.
j'ai cree pour plus de simplicité trois champs heure minute et
seconde/centiéme de façon à récuperer dans un champ duree la duree en
seconde.ce quui me permet grace aux lignes gracieusement données par 3
stone d'afficher la duree sous format hh:mm:ss:cc
Pourtant comment puis je faire pour qu'automatiquement access me copie les
données du champs duree vers un autre champs necessaire pour mes futures
requetes) ?

J'ai essayé l requete ajout mais comme mon form est déjà sous une requete ça
ne vas pas terrible ....


"ls" <laurent.saloperie a écrit dans le message
de news:409921a7$0$419$
Merci je regarde ça demain

"3stone" a écrit dans le message de
news:
re,

"ls"
Pas très clair pour moi qui ne suit pas un pro d'access ...
Pourrais tu me donne un peu plus d'explication stp. Merci



Inutile d'être un pro d'Access pour cela ;-)


Le principe est, par exemple, de tout tranformer en seconde...
et les centièmes seront la partie décimale.
Donc un champ numérique de type double!

Ensuite, une fonction comme celle indiquée ci dessous
(qu'il suffit d'adapter pour les centièmes) fera l'affaire
pour l'affichage en un format plus habituel...

http://mypage.bluewin.ch/w.stucki/CalculsDates.htm#ConvSecHrs


L'adaptation pourrait être celle-ci:
(que tu colle dans un module standard et que tu nomme "mod_ConvertTime"


Public Function ConvSecEnHeures(Secondes As Double) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
Dim Heures As Long, Minutes As Byte, Sec As Byte, Cent As Byte

Cent = (Secondes * 100) - (Int(Secondes) * 100)
Secondes = Int(Secondes)

If Secondes > 0 Then
Sec = Secondes Mod 60
Secondes = Secondes - Sec
Minutes = (Secondes Mod 3600) / 60
Secondes = Secondes - Minutes * 60
Heures = Secondes 3600
ConvSecEnHeures = Format(Heures, "00") _
& Format(Minutes, ":00") _
& Format(Sec, ":00") _
& Format(Cent, ":00")
End If
End Function



Après, pour l'utilisation, il suffit d'utiliser cette fonction
lorsque tu désire obtenir un affichage "hh:mm:ss:cc"

Dans une requête:

Durée: ConvSecEnHeures([TonChampNumérique])

ou dans un formulaire ou un état (dans un contrôle indépendant):

= ConvSecEnHeures([TonChampNumérique])



Si tu as des difficultés pour la saisie et transformation inverse,
revient...


;-)


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------











Avatar
3stone
Salut,

"ls"
j'ai cree pour plus de simplicité trois champs heure minute et
seconde/centiéme de façon à récuperer dans un champ duree la duree en
seconde.



tu veux dire: 3 contrôles sur le formulaire, pour la saisie ?
car, dans la table un seul champ suffit (numérique, type double)


ce quui me permet grace aux lignes gracieusement données par 3
stone d'afficher la duree sous format hh:mm:ss:cc
Pourtant comment puis je faire pour qu'automatiquement access me copie les
données du champs duree vers un autre champs necessaire pour mes futures
requetes) ?


Heu... pourquoi copier dans un "autre" champ ce qui existe ?

J'ai essayé l requete ajout mais comme mon form est déjà sous une requete ça
ne vas pas terrible ....


ben si... s'il le faut...
mais, si en partant du formulaire ouvert, tu ajoute par requête directement
dans la table, alors ne pas oublier de rafraichir le formulaire...
un refresh ou au besoin un requery


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
ls
Justement 3 stone c'est ce que je n'arrive pas à faire . J'ai bien mes trois
contrôles pour inscrire mon tps h, m , sec,centiemes mais comment je fais
pour inscrire le résultat de la somme de ces trois contrôles dans mon champs
durée ?

J'ai donc

'hh' 'mm' 'ss,cc' 'controle duree' champs tps'
'controle duree' ='hh'*3600+'mm'*60+'ss,cc' pour avoir la duree en
secondes .
Comment faire pour que cette somme en secondes soit enregistree sur ma table
?

"3stone" a écrit dans le message de
news:
Salut,

"ls"
j'ai cree pour plus de simplicité trois champs heure minute et
seconde/centiéme de façon à récuperer dans un champ duree la duree en
seconde.



tu veux dire: 3 contrôles sur le formulaire, pour la saisie ?
car, dans la table un seul champ suffit (numérique, type double)


ce quui me permet grace aux lignes gracieusement données par 3
stone d'afficher la duree sous format hh:mm:ss:cc
Pourtant comment puis je faire pour qu'automatiquement access me copie
les


données du champs duree vers un autre champs necessaire pour mes futures
requetes) ?


Heu... pourquoi copier dans un "autre" champ ce qui existe ?

J'ai essayé l requete ajout mais comme mon form est déjà sous une
requete ça


ne vas pas terrible ....


ben si... s'il le faut...
mais, si en partant du formulaire ouvert, tu ajoute par requête
directement

dans la table, alors ne pas oublier de rafraichir le formulaire...
un refresh ou au besoin un requery


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------









Avatar
3stone
Salut,

"ls"

J'ai donc

'hh' 'mm' 'ss,cc' 'controle duree' champs tps'
'controle duree' ='hh'*3600+'mm'*60+'ss,cc' pour avoir la duree en
secondes .
Comment faire pour que cette somme en secondes soit enregistree sur ma table ?



Les TextBox dans ton formulaire se nomme:

txtHH, txtMM et txtSS 'onglet "Autres", Nom...

Dans l'événement "Sur avant mise à jour" du *formulaire* tu mets, par exemple:

Dim Duree As Double
Duree = (Nz(txtHH, 0) * 3600) _
+ (Nz(txtMM, 0) * 60) _
+ (Nz(txtSS, 0))

Me.NomDuChampDuréeDeLaTable = Duree


NB: Cette valeur ne sera enregistrée qu'à condition que l'événement
"Mise à jour" ait lieu... et donc, qu'il y ait une modification dans
l'un des champs liés directement à la source.

Si une simple modification des temps doit être prise en compte,
il faut provoquer cette mise à jour. Pour cela, placer dans
l'événement "Après mise à jour" des contrôles txtHH, txtMM et txtSS
la ligne suivante:

Me.Dirty = True ' (cela provoquera la mise à jour du formulaire)


Ok ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

1 2