Ne fonctionne pas...
Voici exactement mes codes et tables, requêtes/
TABLE
=====
CHAMP1 | CHAMP2
=================
1 | 12,5
2 | 4
1 | 3,5
3 | 0,5
REQUETE
=======
La requête affiche les lignes sur choix de CHAMP1, donc mes résultats peuvent êtres :
Si CHAMP1 = 1 alors deux lignes avec CHAMP2 : 12,5 & 3,5
Si CHAMP1 = 2 alors une ligne avec CHAMP2 : 4
Si CHAMP1 = 3 alors une ligne avec CHAMP2 : 0,5
Si CHAMP1 = 4 alors pas de ligne
FORMULAIRE
=========
Un formulaire qui affiche le résultat de la requête précédente, avec en en-tête une zone de texte et c'est ici que cela se corse...
ZONE DE TEXTE
============
Avec le code suivant sur cette zone de texte :
=Somme([Nombre_dheures_supp])
Cela affiche le total des CHAMP2, donc :
Si CHAMP1 = 1 alors ZONE DE TEXTE = 12,5 + 3,5 = 16
Si CHAMP1 = 2 alors ZONE DE TEXTE = 4
Si CHAMP1 = 3 alors ZONE DE TEXTE = 0,5
Si CHAMP1 = 4 alors ZONE DE TEXTE = "vide, null... ??????"
Et cela fonctionne très bien, maintenant mon problème est si je veux récupérer la valeur de la zone de texte avec un CHAMP1 = 4 :
La valeur du CHAMP2 étant des heures en décimales, j'aimerais les transformer en heure avec le code suivant (il fonctionne très bien si CHAMP1 = 1 ou 2 ou 3)
- Me.Texte13.Value = ZONE DE TEXTE avec le total en décimale
- Me.Texte22.Value = ZONE DE TEXTE2 avec le résultats de la formule suivante
1 2 3 4
| Dim D As Single, Resultat, e
D = Me.Texte13.Value (ZONE DE TEXTE)
e = CStr(Round((D - Int(D)) / 100 * 60, 2)) & "0"
Me.Texte22.Value = CStr(Int(D)) & ":" & Mid(e, 3, 2) |
RESULTATS ET OBSERVATIONS
=======================
Le code précédent étant sur le clic de la ZONE DE TEXTE2 (Me.Texte22.Value),
Si la ZONE DE TEXTE contient une valeur , donc un total, lorsque je clic sur la ZONE DE TEXTE2, cela m'affiche le résultat en heure, cool :-)
Si la ZONE DE TEXTE ne contient rien, donc pas de total vu qu'il n'y a pas d'enregistrement (exemple avec CHAMP1 = 4), lorsque je clic sur la ZONE DE TEXTE2, access se plante !
J'ai donc essayé plusieurs choses :
Soit modifier le code de la ZONE DE TEXTE pour que si il n'y a pas d'enregistrement cela affiche 0, mais je n'y arrive pas, ni avec Nz, IsNull, IsError...
=VraiFaux(EstNull([Nombre_dheures_supp]);0;Somme([Nombre_dheures_supp]))
Soit en modifiant le code de la ZONE DE TEXTE2, mais là aussi aucun résultat...
1 2 3 4 5 6 7 8
| If IsNull(Nombre_dheures_supp.Value) Then Me.Texte22.Value = "0": GoTo finished2
'Pour l'exemple
Dim D As Single, Resultat, e
D = Me.Texte13.Value
e = CStr(Round((D - Int(D)) / 100 * 60, 2)) & "0"
Me.Texte22.Value = CStr(Int(D)) & ":" & Mid(e, 3, 2)
finished2: |
Je sèche... :-( snif...
Partager