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 :

NZ ne fonctionne pas dans mon formulaire


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut NZ ne fonctionne pas dans mon formulaire
    Bonjour à tous,

    Dans des champs calculés de sous formulaires j'ai utilisé pour éviter que ne se propage une erreur sur d'autres champs mais je continue à avoir des messages "#Erreur! ou #Type" lorsque aucun registre ne s'affiche.

    Je ne peux pas laisser le formulaire (vide) sans ligne enregistrée au moins avec un zéro dans un des champs sous peine d'avoir ce message d'erreur.
    Pourtant est censé remplacer toute valeur nulle ou inexistante comme "0" !

    Que fais-je mal ?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Il est possible que ce soit (Calcul) qui renvoie une erreur et dans ce cas NZ propage l'erreur. Il faudrait gérer l'erreur au niveau Calcul.

    De plus prend garde à NZ car avec les nombres il fait parfois sauter les décimales ... pas cool. Dans le doute il est plus prudent d'utiliser IIF(not IsNull(TaValeur);TaValeur;0).
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Il est possible que ce soit (Calcul) qui renvoie une erreur et dans ce cas NZ propage l'erreur. Il faudrait gérer l'erreur au niveau Calcul.

    De plus prend garde à NZ car avec les nombres il fait parfois sauter les décimales ... pas cool. Dans le doute il est plus prudent d'utiliser IIF(not IsNull(TaValeur);TaValeur;0).
    Bonjour,

    Non, tous les champs calculés fonctionnent bien, ce problème se manifeste lorsque aucune donnée n'est rentrée pour un registre donné dans un sous formulaire.

    Je m'explique :

    J'ai un formulaire Devis / Factures principal à onglets, l'un des onglets sert à afficher un sous formulaire "Acomptes", en pied de ce sous-formulaire il y a un champ somme() qui calcule le total d'un champ. Tout va bien à condition que l'ajout soit autorisé dans celui-ci, si je fais allowadditions=false pour éviter de voir des lignes vierges si aucun acompte n'a été versé c'est là que les champs calculés ne fonctionnent plus.

    Sur le formulaire principal sont repris le même type de champ que sous le sous formulaire et ils marchent seulement quand un acompte existe aussi ...

    Dès que je créé une ligne vierge qui contient un zéro dans le champ Total, tous les calculs réapparaissent...

    Comment faire pour que lorsque le formulaire Acomptes est encore vierge les champs du formulaire principal soient calculés ou marquent zéro à la place de "#Erreur!" ?

  4. #4
    Membre Expert

    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
    Par défaut
    Bonsoir,

    Dans le pied de ce sous formulaire, reprend tes opérations sur un nouveau champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux(IsError([TonChampAsoucis]);0;[TonChampAsoucis])
    Cordialement.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Citation Envoyé par francishop Voir le message
    Bonsoir,

    Dans le pied de ce sous formulaire, reprend tes opérations sur un nouveau champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux(IsError([TonChampAsoucis]);0;[TonChampAsoucis])
    Cordialement.
    Merci pour ta réponse,

    Je n'arrive pas à visualiser comment mettre ça dans le formulaire, tu veux dire qu'il faut rajouter un nouveau champ faisant référence à celui qui fait les calculs et ensuite celui çi transformera le résultat en devenant celui qui affiche ? Un genre de by-pass ?

    D'autre part, question indiscrète :
    Es-tu developpeur junior ?

    Merci pour ta réponse

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    En suivant l'idée de francishop (au passage merci à lui, je ne connaissais pas IsError()) je remplacerai la source du champ qui affiche tes #Erreur et #Type par ce qu'il suggère ou tu peux rendre invisible le champ qui afiche les erreurs et créer un nouveau champ qui utlise iSError().

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Citation Envoyé par marot_r Voir le message
    En suivant l'idée de francishop (au passage merci à lui, je ne connaissais pas IsError()) je remplacerai la source du champ qui affiche tes #Erreur et #Type par ce qu'il suggère ou tu peux rendre invisible le champ qui afiche les erreurs et créer un nouveau champ qui utlise iSError().

    A+
    Bonjour à toi,

    Je viens d'esayer la méthode de Francishop mais ça ne marche tjs pas lorsque le sous formulaire ne contient aucune ligne ... la logique du champ proposé est d'afficher un zéro lorqu'il n'y aurait aucune valeur, ça ressemble à NZ mais en étant plus strict, cependant aucun zéro ne s'affiche et #Erreur est tjs présent.

    Quand le SF contient au moins une ligne les calculs se font sans problème ! Je vais m'arracher les cheveux !!!

    C'est l'état du sous formulaire (AllowAdditions=false) qui provoque cette erreur, alors comment faire pour que le SF puisse rester vierge et sans ligne sans que ça n'affecte les calculs du formulaire principal ?

    Merci d'avance à celui qui trouvera !

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Le IsError() ne réagit pas ?

    Pourrais-tu poster la source de ton champ en erreur ?

    Une autre solution consiterai à changer la source de ton champ si il n'y a pas de données mais c'est un peu plus accrobatique.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2010, 12h01
  2. Réponses: 5
    Dernier message: 14/07/2010, 06h26
  3. [MySQL] insert into ; ne fonctionne pas dans mon form
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/07/2010, 16h22
  4. stop() ne fonctionne pas dans mon animation
    Par edzodzinam dans le forum Flash
    Réponses: 1
    Dernier message: 03/07/2009, 12h43
  5. Réponses: 4
    Dernier message: 11/09/2006, 17h46

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