OVH Cloud OVH Cloud

probléme de temps

3 réponses
Avatar
Caroline
Bonjour,

J'ai un champs "Durée"
Je l'ai mis au format "heure abrégée" mais si je saisie 00:45 Access
m'affiche 12:45
Quel est le format à utiliser ?
merci

3 réponses

Avatar
Anor
Bonjour,

| Bonjour,
|
| J'ai un champs "Durée"
| Je l'ai mis au format "heure abrégée" mais si je saisie 00:45 Access
| m'affiche 12:45
| Quel est le format à utiliser ?
| merci

Je dirais Date Court (sur ma version anglaise j'ai Short Time)

Mais comme tu veux stocker des durées, je suppose que tu vas devoir
faire des sommes et dans ce format, tu ne pourras pas obtenir une somme
supérieure à 24 heures.

Je te conseillerais donc :
- dans la table, utiliser un entier long pour stocker des minutes

ça sera transparent pour les utilisateurs si dans le formulaire de saisie,
tu fais saisir au format hh:nn pour convertir la valeur saisie en (60*hh+nn)
et stocker cette valeur dans la table.

Utiliser la conversion inverse pour afficher des hh:nn en lisant des minutes nn dans la table.
--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
Caroline
Salut,

Je vais effectivement faire des sommes sur les durées mais je ne comprends
pas bien le
" tu fais saisir au format hh:nn pour convertir la valeur saisie en
(60*hh+nn)"
Je fais comment pour faire saisir dans ce format, je fais 2 champs, un pour
les heures et un pour les min ?

"Anor" a écrit dans le message de
news:
Bonjour,

| Bonjour,
|
| J'ai un champs "Durée"
| Je l'ai mis au format "heure abrégée" mais si je saisie 00:45 Access
| m'affiche 12:45
| Quel est le format à utiliser ?
| merci

Je dirais Date Court (sur ma version anglaise j'ai Short Time)

Mais comme tu veux stocker des durées, je suppose que tu vas devoir
faire des sommes et dans ce format, tu ne pourras pas obtenir une somme
supérieure à 24 heures.

Je te conseillerais donc :
- dans la table, utiliser un entier long pour stocker des minutes

ça sera transparent pour les utilisateurs si dans le formulaire de saisie,
tu fais saisir au format hh:nn pour convertir la valeur saisie en
(60*hh+nn)

et stocker cette valeur dans la table.

Utiliser la conversion inverse pour afficher des hh:nn en lisant des
minutes nn dans la table.

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------





Avatar
Caroline
merci pour ton explication
entre nous c'est quand même beaucoup de tracas pour ce qui n'est quand même
qu'une durée...
Microsoft aurait pu prévoir ça !
@+
Caroline

"Anor" a écrit dans le message de
news:
Bonjour,

| Salut,
|
| Je vais effectivement faire des sommes sur les durées mais je ne
| comprends pas bien le
| " tu fais saisir au format hh:nn pour convertir la valeur saisie en
| (60*hh+nn)"
| Je fais comment pour faire saisir dans ce format, je fais 2 champs,
| un pour les heures et un pour les min ?

on peut faire avec 2 zones de texte, oui, mais pour ma part, je ferais
plutôt ainsi :

Dans la source de ton form tu affiches lechampEntierLong de la table

Tu rajoutes un contrôle zone de texte indépendant,
avec format heure court et masque de saisie 00:00;0;_
(heure courte également)

Mettons que ce contrôle indépendant s'appelle txtTemps
Tu mets un peu de code dans l'événement après mise à jour
pour renseigner la bonne valeur dans le champ de la table :

Private Sub txtTemps_AfterUpdate()
Me.LeChampEntierLong = Hour(Me.txtTemps) * 60 + Minute(Me.txtTemps)
End Sub

Reste l'opération inverse : mettre à jour la zone de texte indépendante
en fonction de l'enregistrement sur lequel on se trouve :

Private Sub Form_Current()
If Not IsNull(Me.LeChampEntierLong) Then
Me.txtTemps = Format(Int(Me.LeChampEntierLong / 60), "00") _
& ":" & Format(Me.LeChampEntierLong _
- Int(Me.LeChampEntierLong / 60) * 60, "00")
Else
Me.txtTemps = Null
End If
End Sub

Voilà, une fois que ça marche, tu peux masquer ou supprimer le contrôle
LeChampEntierLong.

ps : Le test if not isnull c'est pour avoir le masque de saisie lors de la
création d'un nouvel

enregistrement.

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------