Condition de calcul CpteDom dans un champ formulaire

Résolu
Bonjour,

J'ai une table nommée Table_DataBase, un champ Cotisation

Les informations sont enregistrées dans le champ comme ceci :
PA
PA
2018 CB n° 5530521 du 31/01/18
2018 CB n°0000463 du 02/03/18
PA
2019 CB n° 4106633 du 12/02/19
PA

Je souhaite compter et afficher le résultat comme suit
PA 4
CB 1
Total 5 / 7

Pour cela dans un champ texte j'ai fait ça :
=CpteDom("[Cotisation]";"[Table_DataBase]";"[Cotisation]='PA'") <= là ça marche super bien
=CpteDom("[Cotisation]";"[Table_DataBase]";"[Cotisation]='yyyy'") <= Ne fonctionne pas
=CpteDom("Cotisation";"Table_DataBase") <= Fonctionne que pour le total global

Je souhaite qu'il prenne en compte que l'année en cours
Et pour le total comment faire l'addition PA et CB ?

J'espère avoir été compréhensible.
Merci d'avance pour le/les personnes qui prendront le temps de m'aider.

Configuration: Windows / Firefox 72.0

7 réponses

  1. Contributeur
    bonjour, pour le total, as-tu envisagé de faire une addition?
    la condition
    [Cotisation]='yyyy'
    devrait plutôt ressembler à
    left(Cotisation,4) = format(now(),"yyyy")
    0
    1. Pour l'addition j'ai réussi.
      Il me reste juste à prendre en compte l'année en cours

      =CpteDom("[Cotisation]";"[Table_DataBase]";"[Cotisation]='2020")

      cela fonctionne si j'ai que 2020 dans ma table. Par contre si d'autre caractère à la suite genre 2020 CB n etc... ça ne fonctionne pas.

      quoi mettre à la place de 2020 afin qu'il prenne que l'année en cours
      0
      1. Contributeur
        as-tu testé ma suggestion?
        0
    2. Je doit faire comment ?

      =CpteDom("[Cotisation]";"[Table_DataBase]";"[Cotisation]="left(Cotisation,4) = format(now(),"yyyy""")

      Ça ne fonctionne pas, j'ai une erreur de syntaxe.
      Comment je doit l'insérer dans mon CpteDom ?
      0
      1. Contributeur
        relis ma suggestion, j'ai indiqué ce qu'il fallait remplacer par ma suggestion.
        0
    3. Je suis désolé, j'ai relu plusieurs fois ta suggestion, je ne comprend pas.
      0
      1. Contributeur
        tu as essayé ceci:
        =CpteDom("[Cotisation]";"[Table_DataBase]";"[Cotisation]='yyyy'")

        et j'ai suggéré de remplacer
        [Cotisation]='yyyy'

        par
        left(Cotisation,4) = format(now(),"yyyy")
        0
    4. J'avais une erreur de syntaxe

      J'ai réussi, la solution :

      =CpteDom("[Cotisation]";"[Table_DataBase]";"left(Cotisation,4) = format(now(),'yyyy')")

      Un grand merci yg_be d'avoir pris du temps pour me répondre.
      0
      1. Et si je souhaite faire une différence entre

        2020 CB n°...
        2020 ESP

        Il existe une close pour la différence ?
        0
        1. Contributeur
          par exemple:
          left(Cotisation,4) = format(now(),'yyyy') and mid (Cotisation, 5 , 4) = ' CB '
          avant de demander comment tester, tu dois décider quoi tester. ici, j'ai décidé, à ta place, de tester que, après les 4 premiers caractères, les 4 caractères suivants étaient " CB ".
          0
      2. Désolé j'aurais du préciser du départ.
        Je viens de faire les modifications, et ça fonctionne a merveille.

        Encore un grand Merci pour ton aide.
        0
        1. Contributeur
          on aurait sans doute également pu faire ainsi:
          left(Cotisation,8) = format(now(),'yyyy') & ' CB '
          0