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 :

Référence à un contrôle d'un sous-formulaire : Erreur quand champ vide [AC-2003]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut Référence à un contrôle d'un sous-formulaire : Erreur quand champ vide
    Bonjour,

    Je suis confronté à une petite erreur que je ne comprends pas du tout. Peut-être que quelqu'un de plus expérimenté pourra m'aider.

    J'ai un formulaire avec sous-formulaire. Dans l'en-tête de ce sous-formulaire, j'ai une Textbox qui contient la somme d'un champ. Dans le formulaire, j'ai un contrôle qui reprends la valeur de cette Textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControlSource = [Sous Formulaire].Formulaire!MonControle
    Tout ça fonctionne parfaitement quand j'ai des enregistrements dans la table associée.

    Par contre, quand j'ai aucun enregistrement dans la table, la Textbox dans le sous-formulaire est vide (normal), et celle du formulaire qui est censée reprendre sa valeur m'affiche '#Erreur'. Déjà je comprends pas du tout pourquoi ça fait ça.

    J'ai essayé de contourner le problème en utilisant la fonction VraiFaux, soit dans la Textbox du sous-formulaire, en essayant d'afficher 0 lorsque la somme est nulle (=VraiFaux(Somme([Quantité])=Null;0;Somme([Quantité])), soit dans la Textbox du formulaire (avec le même type de formule). J'ai essayé de remplacer 'Null' dans la formule ci-dessus par 0, ça fonctionne pas non plus.

    Si quelqu'un peut m'expliquer ce fonctionnement, je lui en serais très reconnaissant.

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour


    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControlSource = Nz([Sous Formulaire].Formulaire!MonControle)

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Quelle rapidité !

    Mais ça fait toujours la même chose, que je mette Nz dans le contrôle du sous-formulaire, dans celui du formulaire ou dans les deux...

    Comprends pas...

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Je m'en doutais un peu, c'est pour ça que j'ai dit essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ControlSource = IIF(IsError([Sous Formulaire].Formulaire!MonControle);"";[Sous Formulaire].Formulaire!MonControle)
    Là je suis sûr, mais gaffe aux parenthèses


    Il te donne une erreur car en fait, il n'y a pas de données correspondante vu qu'aucun enregistrement ne correspond, le contrôle est donc innaccessible. Iserror permet de capturer l'erreur.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    C'est bon ça marche !

    J'avais essayé IsNull, IsEmpty, mais j'avais pas vu IsError.

    Merci !

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 19/06/2008, 15h04
  2. naviguer dans un sous-formulaire - erreur 2498
    Par acbdev dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/05/2008, 11h45
  3. Formulaire et sous formulaire Erreur 3252
    Par Reidid dans le forum Access
    Réponses: 3
    Dernier message: 17/08/2007, 17h54
  4. Sous-Formulaire relié à un champ vide
    Par steps5ive dans le forum Access
    Réponses: 2
    Dernier message: 25/08/2006, 18h47
  5. Réponses: 1
    Dernier message: 20/08/2006, 17h34

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