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 :

somme dans etat (zone de texte)


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 119
    Points : 52
    Points
    52
    Par défaut somme dans etat (zone de texte)
    bonjour,


    j'ai une etat qui liste des parcelles, et leur surface. en plus de cela, un sous-etat complete éventuellement cette liste, avec d'autres surfaces (le sous-etat n'a pas toujours des éléments).

    mon but est de faire la somme totale des surfaces..
    j'ai donc pensé à une zone de texte qui me ferai la somme de toutes ces surfaces, mais étant la première fois que j'en utilise j'ignore comment faire.

    pour récapituler voici comment est formé mon état :

    propriétaire -->(groupe)liste de ses parcelles(avec surface1)-->(sous-etat en pied de groupe)liste de terrain supplémentaires(avec surface2)

    je cherche en fait tout simplement la formule pour mettre dans ma zone de texte = (somme des surfaces1 + somme des surfaces2)

    ou une autre solution que la zone de texte...

  2. #2
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour,

    J'essayerai un truc comme ça :

    1) Dans le pied d'état du sous-état, créer une zone texte appelée par exemple SommeSurfaces2.

    2) Ecrire dans la propriété <source controle> de <SommeSurfaces2>
    (Je considère que le champ se nomme <Surface2> dans le sous-état) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =Somme([Surface2])
    3) Dans le pied de groupe de l'état, créer une zone texte appelée par exemple <SommeSurfaces1et2>.

    4) Ecrire dans la propriété <source controle> de <SommeSurfaces1et2>
    (Je considère que mon sous-état se nomme <MonSousEtat> dans l'état et
    que le champ se nomme <Surface1> dans l'état) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    = Somme([Surface1])+MonSousEtat.Etat!SommeSurfaces2
    J'espère qu'avec mon truc vous allez faire surface...

    Philippe

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 119
    Points : 52
    Points
    52
    Par défaut
    merci!

    j'ai juste un petit soucis avec ça : quand mon sous-etat ne contient aucune donnée, la somme finale me marque #erreur. comment puis-je y remedier?

    a savoir : le sous-etat devient invisible si vide (et j'aimerai que ça reste ainsi si possible)

  4. #4
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 119
    Points : 52
    Points
    52
    Par défaut
    ce que je cherche concretement :
    comment mettre une valeur par défaut =0 dans une zone de texte ?
    ou bien remplacer le # erreur d'Access par 0?

    en VBA, est-il possible de donner de nouveaux critères à un zone de texte (à l'ouverture de l'etat par exemple), avec des conditions (if...)?

  5. #5
    Membre chevronné

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour,

    2 choses à faire, je pense :
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Remplacer :
     
    =Somme([Surface2])
     
    par :
     
    =Nz(Somme([Surface2]);0)
    Si aucune valeur de surface2 => renvoie 0 au lieu de Null

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Remplacer :
     
    =Somme([Surface1]) + MonSousEtat.Etat!SommeSurfaces2
     
    par :
     
    =Somme([Surface1]) + VraiFaux(IsError(MonSousEtat.Etat!SommeSurfaces2);0;MonSousEtat.Etat!SommeSurfaces2)
    Si le sous-état est introuvable => test de l'erreur par IsError et renvoi 0 dans ce cas ou la valeur de SommeSurfaces2 si Ok.

    A tester...

    Philippe

  6. #6
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 119
    Points : 52
    Points
    52
    Par défaut
    ok, c'est parfait, ça marche du tonnerre!

    merci bien!

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 119
    Points : 52
    Points
    52
    Par défaut
    note : le nz dans le sous-etat ne semble pas necessaire, si je l'enleve, la somme est faite correctement aussi...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/12/2007, 17h58
  2. Réponses: 4
    Dernier message: 23/08/2007, 17h23
  3. Réponses: 6
    Dernier message: 02/10/2006, 12h13
  4. Réponses: 1
    Dernier message: 11/05/2006, 16h37
  5. [Etat]Somme d'une zone de texte
    Par acceso dans le forum IHM
    Réponses: 5
    Dernier message: 05/01/2006, 17h38

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