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

6 réponses

1 2
Avatar
ls
Si je fais ce que tu m'as dit j'obtiens une erreur 7768 : pour modifier les
donnees de ce formulaire un champ dependant modifiable doit être activé.

Oups comprends pas tt .



"3stone" a écrit dans le message de
news:
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
-----------------------------










Avatar
3stone
Salut,

"ls"
Si je fais ce que tu m'as dit j'obtiens une erreur 7768 : pour modifier les
donnees de ce formulaire un champ dependant modifiable doit être activé.

Oups comprends pas tt .


Mouais.... ;-(


On reprend ;-)


La ligne de code, tu le colle dans une sub:

Sub CalculDuree()
Dim Duree As Double
Duree = (Nz(txtHH, 0) * 3600) _
+ (Nz(txtMM, 0) * 60) _
+ (Nz(txtSS, 0))
'[DureeCourse] est le champ de la table
Me![DureeCourse] = Duree
End Sub

et sur après mise à jour des txtHH, txtMM et txtSS
tu appelle simplement la sub par:

CalculDuree

Tu place un autre txtbox qui aura comme source:

=ConvSecEnHeures([DureeCource])

pour afficher le temps selon l'usage.

Ne pas oublier que les 3 txtbox de saisie indépendant
ne se "vide" pas automatiquement lorsque tu passe à
l'enregistrement suivant...
Pour cela, tu place sur "Activation" tu formulaire:

Me!txtHH = Null
Me!txtMM = Null
Me!txtSS = Null

Il reste à modifier le début de la fonction "ConvSecEnHeures"
de la facon suivante pour éviter l'erreur lorsque le champ est null

Public Function ConvSecEnHeures(Secondes As Variant) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
If IsNull(Secondes) Then Exit Function
...


Voilà, cela doit rouler (VTT) maintenant ;-))


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

Avatar
ls
Merci 3 stone ça fontionne
les vtttistes te remercient !

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

"ls"
Si je fais ce que tu m'as dit j'obtiens une erreur 7768 : pour modifier
les


donnees de ce formulaire un champ dependant modifiable doit être activé.

Oups comprends pas tt .


Mouais.... ;-(


On reprend ;-)


La ligne de code, tu le colle dans une sub:

Sub CalculDuree()
Dim Duree As Double
Duree = (Nz(txtHH, 0) * 3600) _
+ (Nz(txtMM, 0) * 60) _
+ (Nz(txtSS, 0))
'[DureeCourse] est le champ de la table
Me![DureeCourse] = Duree
End Sub

et sur après mise à jour des txtHH, txtMM et txtSS
tu appelle simplement la sub par:

CalculDuree

Tu place un autre txtbox qui aura comme source:

=ConvSecEnHeures([DureeCource])

pour afficher le temps selon l'usage.

Ne pas oublier que les 3 txtbox de saisie indépendant
ne se "vide" pas automatiquement lorsque tu passe à
l'enregistrement suivant...
Pour cela, tu place sur "Activation" tu formulaire:

Me!txtHH = Null
Me!txtMM = Null
Me!txtSS = Null

Il reste à modifier le début de la fonction "ConvSecEnHeures"
de la facon suivante pour éviter l'erreur lorsque le champ est null

Public Function ConvSecEnHeures(Secondes As Variant) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
If IsNull(Secondes) Then Exit Function
...


Voilà, cela doit rouler (VTT) maintenant ;-))


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







Avatar
ls
Rebonjour ,

Juste une petite question :

Comment je fais si j'ai plusieurs élèments de temps à gérer?

<Je fais des champs txtHH1,txtMM1,txtSS1 mais pour le calcul, j'ai essayé de
mettre :
Sub CalculDuree2()

Dim Duree2 As Double
Duree 2= (Nz(txtHH, 0) * 3600) _
+ (Nz(txtMM, 0) * 60) _
+ (Nz(txtSS, 0))
'[DureeCourse] est le champ de la table
Me![Inscriptions_D_TPS1] = Duree2

Private Sub Form_Close()

On Error Resume Next
DoCmd.Close acForm, "FRM_COURSES_D"
End Sub

Mais cela ne fonctionne pas !


" <laurent.saloperie a écrit dans le message de
news:409c9917$0$8646$
Merci 3 stone ça fontionne
les vtttistes te remercient !

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

"ls"
Si je fais ce que tu m'as dit j'obtiens une erreur 7768 : pour
modifier



les
donnees de ce formulaire un champ dependant modifiable doit être
activé.




Oups comprends pas tt .


Mouais.... ;-(


On reprend ;-)


La ligne de code, tu le colle dans une sub:

Sub CalculDuree()
Dim Duree As Double
Duree = (Nz(txtHH, 0) * 3600) _
+ (Nz(txtMM, 0) * 60) _
+ (Nz(txtSS, 0))
'[DureeCourse] est le champ de la table
Me![DureeCourse] = Duree
End Sub

et sur après mise à jour des txtHH, txtMM et txtSS
tu appelle simplement la sub par:

CalculDuree

Tu place un autre txtbox qui aura comme source:

=ConvSecEnHeures([DureeCource])

pour afficher le temps selon l'usage.

Ne pas oublier que les 3 txtbox de saisie indépendant
ne se "vide" pas automatiquement lorsque tu passe à
l'enregistrement suivant...
Pour cela, tu place sur "Activation" tu formulaire:

Me!txtHH = Null
Me!txtMM = Null
Me!txtSS = Null

Il reste à modifier le début de la fonction "ConvSecEnHeures"
de la facon suivante pour éviter l'erreur lorsque le champ est null

Public Function ConvSecEnHeures(Secondes As Variant) As String
' Retourne un nombre de secondes en format HH:MM:SS:CC
If IsNull(Secondes) Then Exit Function
...


Voilà, cela doit rouler (VTT) maintenant ;-))


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











Avatar
3stone
Pas bouclé le tour ? ;-)

"ls"
Juste une petite question :

Comment je fais si j'ai plusieurs élèments de temps à gérer?

<Je fais des champs txtHH1,txtMM1,txtSS1 mais pour le calcul, j'ai essayé de
mettre :


Sub CalculDuree2()

Dim Duree2 As Double
Duree2= (Nz(txtHH1, 0) * 3600) _
+ (Nz(txtMM1, 0) * 60) _
+ (Nz(txtSS1, 0))
'[DureeCourse] est le champ de la table
Me![Inscriptions_D_TPS1] = Duree2

end sub



En fait, il aura fallu en faire une fonction plus "générale" dans ce cas...

mais bon ;-)



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

Avatar
ls
En fait je fais la base pour un ami qui ne connais rien à acess.

Je ne savais pas qu'il y aurait plusieurs champs à faire .
J'en aurais jusque 5 selon le type de course.

Voilà pourquoi je me retrouve un peu coincé...



"3stone" a écrit dans le message de
news:OiJ1$
Pas bouclé le tour ? ;-)

"ls"
Juste une petite question :

Comment je fais si j'ai plusieurs élèments de temps à gérer?

<Je fais des champs txtHH1,txtMM1,txtSS1 mais pour le calcul, j'ai
essayé de


mettre :


Sub CalculDuree2()

Dim Duree2 As Double
Duree2= (Nz(txtHH1, 0) * 3600) _
+ (Nz(txtMM1, 0) * 60) _
+ (Nz(txtSS1, 0))
'[DureeCourse] est le champ de la table
Me![Inscriptions_D_TPS1] = Duree2

end sub



En fait, il aura fallu en faire une fonction plus "générale" dans ce
cas...


mais bon ;-)



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








1 2