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

IHM Discussion :

Message ERREUR (total d'un sous formulaire dans le formulaire)


Sujet :

IHM

  1. #1
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut Message ERREUR (total d'un sous formulaire dans le formulaire)
    Bonsoir,

    Je cherche à faire apparaître dans un contrôle du formulaire principal le total du sous formulaire inclus.

    Par exemple, un contrôle "TOTAL CHIFFRE d'AFFAIRE" dans le formulaire client, affichera le total du sous formulaire qui regroupe toutes ses factures.

    Merci de votre aide.

    JC57
    Windows 10 - ACCESS 2007

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Une piste : http://www.developpez.net/forums/sho...98&postcount=2
    A partir de : Pour obtenir le total d'un sous formulaire sur le formulaire principal :..................................

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  3. #3
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Merci pour cette excellente réponse rapide. Elle correspond exactement à mon attente et je l'ai appliquée aussitôt.

    Après quelques tatonnements ("FORMULAIRE", c'est le mot qu'il faut entrer, pas le nom du formulaire principal), et j'ai effacé le total du sous formulaire en mettant sa hauteur à zéro.

    L'affichage de mon formulaire est exactement celui que je désirai.

    Un petit problème subsiste quand même, lorsquil n'y a rien dans le sous formulaire, le contrôle du formulaire principal affiche "#Erreur", je me mets a la recherche de la solution, mais je suis ouvert à toute suggestion.

    Merci encore.

    JC57
    Windows 10 - ACCESS 2007

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Voir fonction Nz : http://www.developpez.net/forums/sho...49&postcount=8

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  5. #5
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonsoir,

    Merci de cette réponse, mais je ne vois pas comment la réaliser et où mettre cette fonction NZ.

    Dans ma table, tout les champs sont renseignés c'est dans le sous-formulaire qu'il y a des lignes non renseignés .....
    Ce sous formulaire est basé sur une requête.
    Dans les propriétés du champ calculé, la valeur par défaut est: =0,
    format est €

    le total des lignes dans le sous formulaire, dans chaque fiche client, est:
    si il y a des lignes le total apparaît ainsi que sur le formulaire principal.
    si il n'y a pas de ligne, le total du sous formulaire est VIDE et le contrôle dans le formulaire indique "#Erreur".

    C'est pas très dérangeant, et je crois que ça va rester comme ça.

    JC57
    Windows 10 - ACCESS 2007

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,
    Citation Envoyé par DurDur Voir le message
    si il n'y a pas de ligne, le total du sous formulaire est VIDE et le contrôle dans le formulaire indique "#Erreur".
    C'est pas très dérangeant, et je crois que ça va rester comme ça.
    Peut-être "pas très dérangeant" mais anormal. Si on commence à laisser s'instaurer ce genre d'anomalie, c'est la porte ouverte au grand n'importe quoi.

    Dans tes formulaires on trouve quelque chose genre :
    Dans le pied du sous formulaire-->SfrmCompte :un champ-->txtSommeCompte-->Source : Et dans le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SfrmCompte.Formulaire!txtSommeCompte
    Il faut absolumment te débrouiller pour que dans ton sous formulaire-->TxtCompte affiche une valeur. 0 est une valeur. Si c'est le résultat d'un calcul, celui ci doit être du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TxtCompte: Nz([TxtA];0)+Nz([TxtB];0)
    Bien souvent, ceci est éffectué dans une requête source du sous formulaire.

    Vérifie ces quelques points. Ensuite, si il le faut on ira plus loin. Pas question d'accepter l'état décrit.

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  7. #7
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Tu as raison de dire qu'il ne faut pas laisser celà comme ça, mais je suis déprimé de ne pas trouver la solution.

    Bon reprenons:

    C'est une application pour une association.

    Il y a une tbl_ADHERENT : champ codeADHERENT ... etc
    ensuite tbl_EPARGNE : champ epargneADHERENT, epargneMONTANT .... etc

    Une requête qry_EPARGNE pour lier les deux tables par les champs codeADHERENT et epargneADHERENT et un champ qui contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1:nz([epargneMONTANT];0)
    Un sous formulaire sfrm_EPARGNE, avec dans le pied un champ "epargneTOTAL" dont la source controle est :

    ou
    un formulaire principal frm_ADHERENT avec ce sous formulaire, et un controle "totalEPARGNE" ayant comme source contrôle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[sfrm_EPARGNE].[formulaire]![epargneTOTAL]
    A l'ouverture du formulaire principal,
    - si il y a des lignes dans le sous formulaire, tout ce passe bien, le contrôle du sfrm affiche bien le total correspondant, et le contrôle dans le frm aussi.
    - si le sfrm est vide (pas de ligne épargne correspondant au codeADHERENT),
    le controle "epargneTOTAL" du sfrm est vide, et le contrôle du frm affiche "#Erreur".

    Dans les propriétés de chaque contôle, j'ai ajouté : "Valeur par défaut" = 0, mais ça n'a rien changé.

    Peut-être que c'est à l'ouverture du form qu'il faut indiquer que le contôle "totalEPARGNE" =0.

    Voilà, j'en suis là et plus beaucoup de cheveux sur ma tête.

    Il est vrai que "0" sera plus joli que Erreur.

    A bientôt.

    JC57
    Windows 10 - ACCESS 2007

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    On va pas se laisser embêter par une erreur de rien du tout. Dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function PasErreur(NonMerci As Variant) As Variant
      On Error GoTo Trappe
      PasErreur = NonMerci  'On peut faire simple genre N
      Exit Function
    Trappe:
      PasErreur = 0
      Resume Next
      Exit Function
    End Function
    Dautre part, quand tu communiques une information, copie ce qui se trouve dans les champs et non :Access aurait rectifié et inscrit :Et puis ça fais désordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1:nz([epargneMONTANT];0)
    Déjà comme repère, Expr1, on fais mieux, mais un coup en majuscule, une autre fois non.

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  9. #9
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonsoir,

    Je prends en compte les remarques, il est vrai que j'ai tapé le code de mémoire au lieu de faire un copié-collé.

    Pour ce qui est des EXPR1, je suis en phase d'essai et je n'avai pas encore donné un nom à ce champ.

    Maintenant passons à la solution préconisée.

    J'ai créé un module et copié le code préconisé.

    Mais qui fait appel à cette fonction?

    J'ai essayé plusieurs choses sans résultats.

    JC57
    Windows 10 - ACCESS 2007

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,
    Citation Envoyé par DurDur Voir le message
    Je prends en compte les remarques, il est vrai que j'ai tapé le code de mémoire au lieu de faire un copié-collé.

    Pour ce qui est des EXPR1, je suis en phase d'essai et je n'avai pas encore donné un nom à ce champ.
    En fait les remarques sont pour qu'on puisse visualiser exactement ce qui se passe dans ACCESS. Ceci était en grande majorité destiné à quelque éventuel lecteur qui serait tombé dans ce piège ultérieurement. Il est vrai, qu'il aurait été judicieux de ma part d'atténuer la portée de ces remarques par un Smileys genre . Smileys dont j'ai grande difficulté à faire usage.

    On peut directement sur formulaire principal frm_ADHERENT et la source du controle "totalEPARGNE"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =PasErreur([sfrm_EPARGNE].[formulaire]![epargneTOTAL])
    On peut aussi vérifier dans le sous formulaire sfrm_EPARGNE, en ajoutant un champ avec pour source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =PasErreur([epargneTOTAL])
    D'autre part, l'origine de :epargneMONTANT est bien en provenance directe de la table.
    Ce n'est pas le résultat d'une opération. Si c'est le cas, cette opération s'éffectue dans la requête ou sur le formulaire?

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  11. #11
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    pas de changement ....

    Il doit avoir quelque chose qui coince.

    Est ce que je peux t'envoyer toute l'apli pour que tu y jette un oeil bienveillant.

    Pour cela, il me faudrait ton adresse mail.

    Merci

    JC57
    Windows 10 - ACCESS 2007

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Il suffit de réduire ta base aux 2/3 tables concernées (Les vider) idem requêtes et les 2 formulaires récalcitrants. Peut-être un module en sus. On enlêve les images des formulaires et on compacte :Outils/Utilitaires de base de données/Compacter une base de données. Ensuite on zip et direction forum.

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  13. #13
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Merci pour ton aide et ta proposition.

    C'est la première fois que je fais ce truc, je souhaite que ça marche.

    JC57
    Fichiers attachés Fichiers attachés
    Windows 10 - ACCESS 2007

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Effectivement, dans ta requête il se trouve des champs [EpargneMONTANT] vides.
    Il est possible de "tricher" dans cette situation en créant dans la requête "qry_EPARGNE"
    un champ genre : txtTriche: Nz([EpargneMONTANT];0) et qui va servir par la suite aux opérations.

    Mais je n'ai pas trouvé dans ton module "DEBUT" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function PasErreur(NonMerci As Variant) As Variant
      On Error GoTo Trappe
      PasErreur = NonMerci  'On peut faire simple genre N
      Exit Function
    Trappe:
      PasErreur = 0
      Resume Next
      Exit Function
    End Function
    Qui te permet dans ton formulaire "frm_ADHERENT" et "TotalEPARGNE" d'inscrire en source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =PasErreur(sfrm_EPARGNE.Formulaire!Epargnetotal)
    Pièce jointe 24462
    Cordialement.

    Ps : Références modifiées. (Ont a pas les mêmes.)
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  15. #15
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Pas moyen de décompresser le fichier.

    Messages d'erreur:

    "Méthode inconnue dans Amicaliste.mdb"
    et
    "Aucun fichier à extraire"

    Pour ce qui est de la fonction, j'ai envoyé ma base telle qu'elle était avant toute modification.
    Sans ajouté de champ, avec la fonction NZ dans ma requete sur le champ epargneMONTANT, les lignes vides de la requête se remplissaient de zéro, mais sans changer le message Erreur dans le champ du formulaire, puique le sous formulaire est vide (donc pas de ligne zéro) lorsqu'il n'y a aucune ligne correspondant à l'ADHERENT ouvert.

    Si je savais le latin, je pourrais dire que je suis en train de le perdre.

    je t'envoi mon @mail en MP, si tu veux bien me renvoyer le base sans la compresser.

    JC57
    Windows 10 - ACCESS 2007

  16. #16
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Ceci est peut-être inélégant mais dans ces cas j'utilise à mes risques et périls
    la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Pour ton latin : "maxima carabistouilla"
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  17. #17
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Hourra !! ça tourne.

    J'ai repris depuis le début.

    Utiliser la fonction NZ dans la requête sur le champ "epargneMONTANT", renommé par la même occasion "m_EPARGNE" ce qui change de "Expr1"

    Dans le sfrm, source control du champ "epargneTOTAL"

    Dans le frm_ADHERENT, souce control du champ "TotalEPARGNE"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =paserreur(sfrm_EPARGNE.Formulaire!Epargnetotal)
    et surtout, mettre la fonction "PASERREUR" dans le module "DEBUT" et pas comme j'avais fait précédemment, dans un nouveau module.

    Voilà c'est nickel

    Encore merci pour cette aide.

    JC57

    Windows 10 - ACCESS 2007

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/09/2010, 14h48
  2. Valeur d'un sous-formulaire dans un formulaire
    Par vautour29 dans le forum Access
    Réponses: 15
    Dernier message: 10/07/2006, 22h04
  3. Réponses: 6
    Dernier message: 28/06/2006, 15h01
  4. Inclure un sous formulaire dans 2 formulaires
    Par cdumas dans le forum Access
    Réponses: 2
    Dernier message: 10/04/2006, 17h59
  5. Réponses: 6
    Dernier message: 26/11/2005, 15h43

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