Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2010, 16h11   #1
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Par défaut Compte le nombre de ligne d'un formulaire continu

Bonjour

Comme mon titre le dis je voudrais compter le nombre de ligne d'un sous formulaire.

Afin de pouvoir effectuer cette action j'ai rajouté dans ma requête source un champs qui est "=1" est ensuite je fait la somme de ce champs, cela fonctionne.

Mais quand j'ai aucune ligne, il ne met aucune valeurs, sauf que j'effectue par la suite un calcule de pourcentage avec ce champs, Donc me retourne une erreur. J'ai essayer de tester le champs et de mettre 0 si vrai mais ni Isnull ni isexist ni <> "" ne fonctionne pour pouvoir effectuer ce test.

Est ce que quelqu'un à une idée pour pouvoir effectuer cette action. (Expression, requete, VBA, macro,..) peux importe la solution, je peux tout les implémenter sur mon champs.

Je vous remercie par avance de votre aide

Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h59   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Essaie en utilisant cette fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
Function NullToZero(anyValue As Variant) As Variant
On Error GoTo error
    If IsNull(anyValue) Then
        NullToZero = 0
    Else
        NullToZero = anyValue
    End If
Exit Function
error:
NullToZero = 0
End Function
Elle donne comme résultat :
- soit la valeur donnée,
- soit zéro si la valeur n'existe pas.
Reviens, si pas OK.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 08h34   #3
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

Je te remercie de ta réponse, je vais essayer et je te dis si c'est bon ou pas.

Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 09h00   #4
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

je viens d'essayer votre solution, mais sans succès, il me dis qu'il ne trouve pas mon champs (pourtant il existe, est je me suis pas tromper dans l'écriture car copier coller)

Ce que j'ai fait J'ai ajouter la fonction dans le code VBA de mon formulaire principale.
Puis j'ai ajouter l'appel dans le code qui exécute à l'ouverture du Formulaire
Comme ceci
Code :
1
2
3
 
Forms("FV_PriseConnaissance_Manageur").Controls("TotalNonLu").Value = NullToZero(Forms("FV_PriseConnaissance_Manageur").Controls("TotalNonLu").Value)
    Forms("FV_PriseConnaissance_Manageur").Controls("TotalLu").Value = NullToZero(Forms("FV_PriseConnaissance_Manageur").Controls("TotalLu").Value)
Je continu à regarder, Si vous avez d'autre idée je suis preneur.
Merci
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 09h17   #5
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 936
Points : 7 936
bjr,

Claude, n'aurais-tu pas reprogrammé la fonction Nz ??

Pour appeler un contrôle de sous-formulaire, voir cet article :
http://loufab.developpez.com/tutorie...pelformulaire/

Sinon un Nz dans la source du contrôle pourrait suffire non?
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 09h23   #6
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

j'ai essayé une autre solution toujours avec votre formule, mais cette fois si en l'appelant directement dans la source de mon champs (Donnée source).

Est j'écris ça
Code :
=NullToZero(Somme([Nombre]))
mais quand c'est vide il ne me mes pas 0.

Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 09h55   #7
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bjr Arkham46 et les autres,

Cette fonction a une valeur ajoutée (à mon point de vue, en tout cas).

J'explique.

Dans un état, j’ai ceci :

Code :
UnContrôle=[FilleHon]!Total
FilleHon est un sous-état qui contient un Total pour autant qu’il y ait des postes à additionner. Si non <Erreur>.

Dans mon état principal, je veux soit le Total s’il existe, soit 0 s’il n’existe pas.

=Nz([FilleHon]!Total) me donne <Erreur>

=NullToZero([FilleHon]!Total) me donne 0 (zéro)

Pq ? Parce que si anyValue est en erreur (il ne contient pas de valeur, même pas la valeur « Null ») --> l’erreur est trappée et ma fonction renvoie 0 (zéro).
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 09h58   #8
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 936
Points : 7 936
Citation:
Envoyé par ClaudeLELOUP Voir le message
Pq ? Parce que si anyValue est en erreur (il ne contient pas de valeur, même pas la valeur « Null ») --> l’erreur est trappée et ma fonction renvoie 0 (zéro).
ok merci
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 10h00   #9
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
à charlingals1:

plutôt ceci

Code :
=Somme(NullToZero([Nombre]))
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h02   #10
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

Je viens d'essayer ceci
Citation:
=Somme(NullToZero([Nombre]))
Mais toujours rien, il ne veux pas mettre 0 dans le champs, donc erreur sur mon calcul de pourcentage.

je ne sais vraiment plus comment faire.

Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h10   #11
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

Je viens de trouver la solution, en postant mon dernier message. Voici ce que j'ai fais

Au lieu d'essayer de mettre 0 dans mais deux sous formulaire, si aucune valeur j'ai mis la formulaire dans mon calcul de pourcentage.

Dans mes deux sous formulaires j'ai Est ensuite je calcule pourcentage
Code :
1
2
 
NullToZero([F1].[Formulaire]![TotalLu])/(NullToZero([F2]![TotalNonLu])+NullToZero([F1].[Formulaire]![TotalLu]
Est avec ce code il me ressort bien le resultat (0 % si le formulaire 2 et vide et 100 % si le formulaire 1 est vide

Je vous remercie tous de votre aide.

Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h11   #12
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Sans connaître le contexte en détail, c'est difficile.
Ma proposition, c'est de l'Aspirine : on essaie et si çà ne marche pas, il vaut mieux se faire examiner.

Peux-tu poster une BDD compatible Access2000, j'y jetterai volontiers un coup d'oeil cet après-midi.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est actuellement connecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/12/2010, 13h57   #13
Membre du Club
 
Charles Taquet
Inscription : juillet 2010
Messages : 88
Détails du profil
Informations personnelles :
Nom : Charles Taquet
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juillet 2010
Messages : 88
Points : 42
Points : 42
Bonjour

J'ai pas de base de donnée compatible access 2000. Mais en gros le contexte est comme suis :
J'ai un formulaire principale qui regroupe un liste d'utilisateurs
Sur ce formulaire j'ai deux sous formulaire
Un qui affiche les livres à lire
Et l'autre les livre lu
Sur les deux sous formulaire j'ai une case total qui compte le nombre de livre (Nom des champs : Totallu et TotalNonlu)

Et pour terminé sur le formulaire principal j'ai un champs qui calcule le pourcentage de livre lu donc totallu/(totallu+totalnonlu)

Voici le contexte

je vous remercie
Cordialement
charlingals1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h47.


 
 
 
 
Partenaires

Hébergement Web