IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Additionner UNIQUEMENT les champs NON VIDE [AC-2019]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Additionner UNIQUEMENT les champs NON VIDE
    Bonjour Amis Astuciens,

    Mon application possède 5 champs que je remplit par un Prénom d'un enfant....
    Chaque champ se nomme Enfant1, enfant2, etc... jusqu'à enfant5.

    Si 5 champs remplit = 5 enfants
    Si 3 champs remplit = 3 enfants
    et si tous les champs sont vide = 0 enfants

    Alors comment faire pour additionner ces champs NON VIDE ???
    Suis nul en VBA alors un exemple ou une formule SVP.
    Me suis-je bien expliqué ?

    Merci d'avance et bonne soirée.
    Bernard

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    Vous pouvez utiliser la fonction "NZ".
    Exemple : Nz([Champ1];0) donnera la valeur se trouvant dans champ1, mais si champ1 est "vide", elle donnera zéro.

    Vous pouvez également tester le contenu de champ1 via la fonction IsNull([Champ1]) ou EstNull([Champ1])

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Merci Zekraoui_Jakani
    Merci Zekraoui_Jakani,

    OUI c'est une bonne piste mais après comment additionner cela dans un formulaire ?

    Je sais faire dans un état, mais ce que je veux c'est dans le formulaire de ma fiche ???

    Suis NULL et mes neurones usés, car 74 ans....
    Merci pour du clé en mains.
    Bonne journée.
    Bernard

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    74 ans n'est pas une excuse acceptable ...
    un exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    'n : nb d'enfants
    n= 0
    for i = 1 to 5 
    if len(nz(me.controls("enfant" & i")) > 0 then
    ' si la longueur de la valeur du controle enfanti est > 0
    n= n+1
    end if
    next i
    Salut

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Merciii micniv
    Merciiiii micniv

    Je vais de ce pas mettre cela en application....

    Bonne journée.
    Je met résolu.

  6. #6
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut micniv il y a un Bug
    Re-bonjour micniv

    Trés bonne formule mais il y a un bug ...
    Access me dit qu'il manque une parenthèse ou séparation sur la ligne :

    if len(nz(me.controls("enfant" & i")) > 0 then

    et je n'arrive pas à débugger ... Un conseil ou une correction SVP
    Bonne soirée et merci pour ton aide.
    Bernard

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    bonsoir,
    1 caractère en trop et 3 manquants, voici la correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if len(nz(me.controls("enfant" & i), 0)) > 0 then

  8. #8
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Tee_grandbois encore un bug
    Encore un BUG: sur la variable I
    Mais peut-être devrai-je la déclarer quelque part ???
    Je sais suis NUL en VBA

    Le message d'erreur :

    Variable requise, impossible de l'affecter à cette expression

    Mais merci de ton aide

    Bernard

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    Encore un BUG: sur la variable I
    Mais peut-être devrai-je la déclarer quelque part ???
    oui, de toute façon, mais il faudrait quand même poster ton code complet et la ligne en erreur

  10. #10
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    La question surtout est de savoir si les textboxes sont bien nommées enfant1, enfant2, etc.
    Et pour un 6ème enfant, vous faites comment ?

  11. #11
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Tee_granbois BUG sur Variable
    NBonjour Tee_grandbois, merci pour ton aide...

    Voici tout le code pour (J'espère) afficher le nombre d'enfants sur Click... Mais dans mon formulaire.
    Sachant que mes CINQ champs se nomment :
    [Enfant1], [Enfants2], [Enfant3], [Enfants4], [Enfant5]

    Le bug est sur la ligne : For I = 1 To 5
    La variable I n'est pas déclarée, mais ou ??? la déclarer ???
    Suis vraiment nul en VBA, mais je sais parfaitement Copier/Coller tout ce que l'on m'explique...

    Donc voici ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Texte565_Click()
     
    'n : nb d'enfants
    N = 0
    For I = 1 To 5
     
    If Len(Nz(Me.Controls("enfant" & I), 0)) > 0 Then
    ' si la longueur de la valeur du controle enfanti est > 0
     
    N = N + 1
    End If
    Next I
     
    End Sub
    Merci pour ton aide Amicale.
    Bernard

  12. #12
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    La question surtout est de savoir si les textboxes sont bien nommées enfant1, enfant2, etc.
    Et pour un 6ème enfant, vous faites comment ?
    Bonjour Hyperion13
    Je n'avais pas vu ton message.
    Le sixième enfant si
    enfants et bien on en parle pas...
    Les familles de plus de 5 enfants sont rare aujourd'hui et mon appli contient très peu de vieux couples.

    D'autre part mon appli n'avait plus assez de places pour rajouter des champs sur l'interface.
    Car je dois tenir compte de l'écran sur lequel je bosse (Un PC Studio2 de chez Microsoft) et de l'écran de mon portable qui est plus petit (Un surface PRO de chez Microsoft).

    Voilà ta réponse.
    Bonne journée et merciiiiiiiiiiiii

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    if len(nz(me.controls("enfant" & i), 0)) > 0 then
    Alors petite correction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if len(nz(me.controls("enfant" & i))) > 0 then

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    bonjour,
    Sachant que mes CINQ champs se nomment :
    [Enfant1], [Enfants2], [Enfant3], [Enfants4], [Enfant5]
    est-ce une faute de saisie ou y a t-il vraiment un s à Enfants2 et Enfants4 ?

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    Le sixième enfant si
    enfants et bien on en parle pas...
    Les familles de plus de 5 enfants sont rare aujourd'hui et mon appli contient très peu de vieux couples.
    Tu n'a jamais entendu parler de la la série documentaire "Familles nombreuses: la vie en XXL" à la télé ?
    Car, à moins que ce soit bidon comme bon nombre de séries de télé-réalité, on ne peut pas dire que ce sont des couples âgés (en attendant que tu nous donnes ta définition de "vieux couples")

  16. #16
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut Tee_grandbois cela ne me fait pas avancer si pas de solution à ma portée
    Tee_grandbois d'abord merciiiiiiii pour ton aide amicale.

    Pour enfant effectivement il ni a pas de S.
    L'âge sans doute en est la cause...

    Et pas de famille nombreuse de plus de CINQ Enfants.

    Comment déclarer ma variable I ??????????
    j'ai mis en dessus du code VBA : Dim I As Byte

    Mais cela ne fonctionne pas hélas...
    Dans l'espoir que tu me guide pour trouver cela ?
    Amicalement et bonne soirée.
    Bernard

  17. #17
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim i as integer, n as integer

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    j'ai mis en dessus du code VBA : Dim I As Byte
    où çà, exactement la déclaration ?
    Mais cela ne fonctionne pas hélas...
    c'est toujours la même erreur ?
    Byte est correct puisque compris entre 0 et 255

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 770
    Points : 14 812
    Points
    14 812
    Par défaut
    autre chose, as-tu corrigé ma "bêtise" ?
    incorrect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if len(nz(me.controls("enfant" & i), 0)) > 0 then
    correct (merci, micniv):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if len(nz(me.controls("enfant" & i))) > 0 then

  20. #20
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 240
    Points : 115
    Points
    115
    Par défaut tee_grandbois et micniv Merci de votre aide.
    Voila mon code sur un champ (donné et rectifié par ce FORUM d'entr'aide Merveilleux)
    J'ai déclaré ma variable ici ligne 3...
    Le but et de compter pour chaque fiche le nombre d'enfants (Jusqu'à 5 pas plus)
    Enfant1, enfant2, etc...
    Si champ vide Zéro ou encore mieux RIEN
    Si plusieurs champs remplit = Nombre de champs ce qui me marquera un chiffre qui sera le Nb d'enfant sur cette fiche.
    Me suis bien fait comprendre car suis NUL en VBA (entre autre chose me dit ma femme!!!!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Texte565_Click()
     
    Dim I As Integer, N As Integer
    'n : nb d'enfants
    N = 0
    For I = 1 To 5
     
        if len(nz(me.controls("enfant" & i))) > 0 then
     
            ' si la longueur de la valeur du controle enfanti est > 0
     
            N = N + 1
        End If
    Next I
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/08/2016, 19h16
  2. [AC-2010] Création d'une table avec seulement les champs non vides d'une autre
    Par stsym dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 20/07/2016, 22h50
  3. Filtrer uniquement les champs non vides
    Par qmike dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/10/2012, 14h40
  4. Compter champs non vide
    Par szdavid dans le forum Oracle
    Réponses: 4
    Dernier message: 13/07/2005, 14h01
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo