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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juillet 2019
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Somme ou compte dans un pied de page de formulaire
    Bonjour,

    Voici mon état en mode création
    Nom : Capture3.JPG
Affichages : 43
Taille : 48,4 Ko

    Dans le pied de page de mon état je souhaite compter le nombre d'enregistrement à partir du champ [total]
    J'ai inséré une zone de texte avec la formule =Compte([total]) dans mon pied de page mais cela me renvoie un message #erreur en mode aperçu avant impression, pourquoi ?

    Pourquoi ne peut-on pas faire de calcul de sommes et de compte aussi facilement que dans un formulaire classique, quel problème y'a-t-il avec un pied de page ?

    Je souhaiterai également compter le nombre de champ nonvide [total], cela est-il également possible?

    Merci pour votre éclairage

  2. #2
    Membre expert

    Homme Profil pro
    consultant développeur
    Inscrit en
    mai 2005
    Messages
    2 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 2 223
    Points : 3 523
    Points
    3 523
    Par défaut
    Bonjour,

    Apparemment, en pied de page d'un état (au contraire de pied d'état ou pied de groupe), les fonctions comme Compte() ne fonctionnent pas fiablement.

    Il vaut mieux passer par du code :
    dans le module de l'état, déclare une variable cnt
    puis dans les evenements Détail_Print et ZonePiedPage_Print,saisit le code comme ci dessous :
    (dans le pied de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Option Explicit
     
    Dim cnt As Integer
     
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
    cnt = cnt + 1
    End Sub
     
    Private Sub ZonePiedPage_Print(Cancel As Integer, PrintCount As Integer)
    Me.txtComptePage = "Records/page: " & cnt
    cnt = 0
    End Sub
    CDLT
    "Always look at the bright side of life." Monty Python.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juillet 2019
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci effectivement ça marche.. .étonnant qu'une fonction Compte([texte]) ne marche pas...

    Par contre comment puis-je faire pour décompter en fonction du contenu de la zone texte ?
    Par exemple si je ne veux compter que les enregistrements qui contienne la valeur 1 dans la zone de texte ?

    Merci

  4. #4
    Membre expert

    Homme Profil pro
    consultant développeur
    Inscrit en
    mai 2005
    Messages
    2 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 2 223
    Points : 3 523
    Points
    3 523
    Par défaut
    Il suffit d'étendre un peu le code que je t'ai proposé.

    Tu déclares une seconde variable au niveau du module , disons Dim cnt1 ... et tu poursuis comme ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Option Explicit
     
    Dim cnt As Integer
    Dim cnt1 As Integer
     
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
    cnt = cnt + 1
     
    ' txtChamp1 est le champ dans la zone détail valorisé à 1
    if me.txtChamp1= 1 then cnt1 = cnt1 + 1
     
    End Sub
     
    Private Sub ZonePiedPage_Print(Cancel As Integer, PrintCount As Integer)
    Me.txtComptePage = "Records/page: " & cnt
    cnt = 0
     
    ' txtCompte1  est le champ indépendant dans la zone PiedPage pour compter les 1
    Me.txtCompte1 = cnt1
    cnt1=0
     
    End Sub
    pas testé, mais ca devrait le faire.
    Si oui, n'oublie pas de passer en Résolu

    CDLT
    "Always look at the bright side of life." Monty Python.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juillet 2019
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci une fois de plus, voici le code que j'attendais.
    Une dernière question pour comprendre ce compte ultra-simple qui m'aide beaucoup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
    cnt = cnt + 1
    Comment se fait-il que cnt s'attribue automatiquement la valeur que j'appellerai maladroitement "ligne enregistrement"
    alors que vous ne définissez à aucun moment les propriétés de cnt sinon que c'est un entier (dans les déclarations des variables initiales) ?

  6. #6
    Membre expert

    Homme Profil pro
    consultant développeur
    Inscrit en
    mai 2005
    Messages
    2 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 2 223
    Points : 3 523
    Points
    3 523
    Par défaut
    cnt est déclaré au niveau du module pour pouvoir utiliser sa valeur dans toutes les procédures du module

    puis
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
    cnt = cnt + 1
    ...
    l'evt Détail_Print se déclenche pour chaque enregistrement (de la requette source), ainsi cnt compte les enregistrements

    et l'evt ZonePiedPage_Print clot la page et remet cnt à 0 pour recommencer à compter pour la page suivante

    CDLT
    "Always look at the bright side of life." Monty Python.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juillet 2019
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci, c'est clair. Bravo à tous pour l'aide que vous apportez !

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

Discussions similaires

  1. Problème de somme dans un pied de page
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 09/04/2008, 10h48
  2. Résultat calculé dans un pied de page DataReport
    Par jimmy-sept dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/04/2007, 18h12
  3. [VBA-W] Mot en gras dans un pied-de-page
    Par Fée_Clochette dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/01/2007, 18h33
  4. Réponses: 5
    Dernier message: 29/11/2006, 12h58
  5. Réponses: 6
    Dernier message: 28/11/2006, 10h55

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