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 :

concaténation dans un état.


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut concaténation dans un état.
    Bonsoir,

    je voudrais, dans un état, concaténer les valeurs d'un même champ vers un champ indépendant.
    Dans mon état, j'ai un champ "remarque", et je voudrais regrouper toutes les remarques au même endroit, dans le pied d'état.
    Est-ce possible ??

    par avance merci,
    fifi

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Dans le pied d'état, tu ajoutes donc une zone de texte indépendante que tu nommes par exemple : txtConcatene.
    Dans la section détail, sur l'événement "Sur Formatage", tu inclus le code suivant :

    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
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        ' Déclaration des variables
        Static l_strRemarque As String
        Static l_intCompteur as Integer
     
        If l_intCompteur = 0 then
            ' Initialisation de la première concaténation
            l_strRemarque  = Me.Remarque
        Else
           ' Concatenation de la remarque avec la précédente en incluant un saut de ligne
            l_strRemarque = l_strRemarque & vbCrLf & Me.Remarque
        End If
     
        ' Initialisation du champ du pied d'état
        Me.txtConcatene = l_strRemarque
     
        ' Incrementation du compteur
        l_intCompteur = l_intCompteur +1
     
    End Sub
    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour Jeannot45 et merci pour l'aide.

    Ca concatène bien les remarques dans le champ prévu.

    Cependant :
    1- j'ai la remarque du premier enregistrement qui apparait une seconde fois en fin de liste,
    2- si j'ai des enregistrements sans remarque, j'ai une ligne blanche dans le champ de concaténation pour chaque enregistrement sans remarque (j'ai un état qui comporte 16 lignes dont seule la première ligne à une remarque, ça me donne; remarque du premier enregistrement, 15 lignes blanches et remarque du premier enregistrement, à nouveau),
    3- si le premier enregistrement n'a pas de remarque, j'ai le message d'erreur :

    "utilisation incorrecte de Null", pour la ligne 8

    en "bricolant" le code comme suit :
    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
    24
    25
    26
    27
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        ' Déclaration des variables
        Static l_strRemarque As String
        Static l_intCompteur As Integer
     
        If l_intCompteur = 0 Then
            ' Initialisation de la première concaténation
            l_strRemarque = Me.DetSejour_Rmk
        Else
            If Me.DetSejour_Rmk = "" Or IsNull(Me.DetSejour_Rmk) Then
            GoTo InCre
            Else
           ' Concatenation de la remarque avec la précédente en incluant un saut de ligne
            l_strRemarque = l_strRemarque & vbCrLf & Me.DetSejour_Rmk
            End If
     
        End If
     
        ' Initialisation du champ du pied d'état
        Me.txt_ConcatRmk = l_strRemarque
     
    InCre:
        ' Incrementation du compteur
        l_intCompteur = l_intCompteur + 1
     
     
    End Sub
    les lignes blanches disparaissent, mais je n'ai rien trouvé pour les points 1 et 3 ci-dessus.

    fifi

  4. #4
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    en fait pour le point 1 :
    ce n'est pas juste la première remarque qui est affichée une seconde fois, ce sont toutes les remarques qui sont concaténées deux fois.

    fifi

  5. #5
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonsoir,

    j'arrive a même résultat avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    On Error Resume Next
    DoCmd.GoToRecord , , acFirst
    If DetSejour_Rmk = "" Or IsNull(DetSejour_Rmk) Then
    Else
    txt_ConcatRmk.Value = txt_ConcatRmk.Value & vbCrLf & DetSejour_Rmk.Value
    End If
    eRRo:
    End Sub
    moins de lignes...
    mais autant je pouvais suivre le cheminement logique de la procédure dans le code précédant autant là je suis perplexe

    pourquoi la procédure balaie-t-elle tous les enregistrements alors qu'elle est juste envoyée au premier par "docmd.gotorecord,,acfirst", et surtout pourquoi deux fois ???????!!!!!!!!!

    en fait on dirait que la procédure se comporte comme si chaque ligne était un premier enregistrement.

    "étonnant, non??"

    des idées ????

    fifi

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je t'avoue que je ne comprends pas ton problème. Je te joins un extrait de ma gestion de bibliothèque ou j'ai concaténé les résumés des livres que j'ai lu. J'ai supprimer certains résumés afin d'avoir des champs vides.
    Lors de l'aperçu avant impression de l'état, la concaténation est correcte.

    J'ai numéroté les résumés pour voir s'il y avait des doublons. Pas de soucis.

    Pourrais-tu me mettre un extrait de ta base avec l'état concerné et ses sources, ça sera plus concret.
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  7. #7
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour Jeannot45

    En pièce jointe la bdd complète.
    Après l’avoir triturée ce matin il ressort que :
    - si j’appelle l’aperçu avant impression depuis le panneau de gauche en click droit sur l’état, ou depuis le formulaire F_ClientSejour, par le bouton ad-hoc, la numérotation des pages est farfelue, mais la concaténation des remarques semble correcte. Je dis « semble », car en fait elle ne l’est pas, car lorsque j’imprime cet aperçu, j’ai deux fois la concaténation des remarques, mais la pagination est correcte. Il est à noter également que les deux lignes noires, sous Facture, dans la première page, disparaissent à l’impression (si la facture est sur deux pages, la ligne sous facture est bien imprimée sur la deuxième page),
    - si j’appelle l’aperçu depuis le mode création de l’état, j’ai double concaténation, pagination correcte et l’impression est exactement la même que ci-dessus.

    Bon dimanche,
    fifi

    Facture-ERI-Hotel.zip

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 261
    Points : 6 557
    Points
    6 557
    Par défaut
    Salut,
    Et avec cette function()?

    EDIT: 18:06
    En copiant la fonction citée ci-dessus dans un Module, il te suffit de copier dans le Source contrôle de la zone de texte txt_ConcatRmk, le code qui suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ConcatRelated("DetSejour_Rmk";"T_DetSejour";"cle_Sejour = " &[cle_Sejour])
    le résultat est à priori bon.
    Supprimer la proc Au formatage de la zone détail de l'état.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Merci beaucoup hyperion13 pour cette fonction
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  10. #10
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    Bonjour hyperion13 et merci pour cette fonction.

    Je voudrais que les remarques s'affichent les unes en dessous des autres, mais quel que soit ce que je mets en 5ieme argument, ça me renvoie toujours un message :
    "La syntaxe de l'expression entrée n'est pas valide."

    fifi

  11. #11
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 261
    Points : 6 557
    Points
    6 557
    Par défaut
    Salut,
    Facile pour compiler verticalement.
    Remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Optional strSeparator = ", ") As Variant
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Optional strSeparator = vbCrLf) As Variant
    Cr = retour chariot et Lf = saut de ligne

    Et merci de respecter les termes de ma signature
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  12. #12
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2018
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juin 2018
    Messages : 96
    Points : 50
    Points
    50
    Par défaut
    C'est exactement ce que je cherchais, merci.

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

Discussions similaires

  1. [AC-2010] Concaténer deux champs dans un état
    Par dmaignan dans le forum IHM
    Réponses: 3
    Dernier message: 30/03/2017, 08h38
  2. [CR] Orientations differentes dans même état
    Par ina dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 23/10/2008, 10h57
  3. concaténer deux champs dans un état
    Par isabelle b dans le forum IHM
    Réponses: 4
    Dernier message: 24/06/2008, 19h42
  4. Réponses: 2
    Dernier message: 13/10/2004, 15h32
  5. [CR 8.5] Numérotation des pages et rappel dans sous état
    Par Nout dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 02/09/2004, 13h43

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