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

Requêtes et SQL. Discussion :

concaténer des informations avec requête access


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut concaténer des informations avec requête access
    Bonjour à tous,

    sauf erreur, je n'ai pas trouvé cette discussion ici

    débutant en access je souhaite concaténer l'information "repères" par composant par article

    ci-dessous à droite la table de départ et à gauche la table que je souhaite obtenir :

    Nom : Capture.PNG
Affichages : 2682
Taille : 14,6 Ko

    comment construire la requête ? (sous access 2016)

    j'ai vraiment l'impression que c'est une question de débutant ^^

    merci de votre aide,

    Alexandre

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci pour le lien !

    j'avais lu ce post,

    mois la ségrégation ce fait avec le couple article et composant car je peux avoir le composant dans plusieurs produits,

    en plus j'aurais souhaité rester dans de la requête access et là on tombe dans le VBA, est-ce possible ou pas ?

    merci,

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    A mon sens dans Access cela n'est pas possible via une requête SQL.
    ++

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour Esusarcher et james68
    Citation Envoyé par Esusarcher Voir le message
    merci pour le lien !

    j'avais lu ce post,

    mois la ségrégation ce fait avec le couple article et composant car je peux avoir le composant dans plusieurs produits,

    en plus j'aurais souhaité rester dans de la requête access et là on tombe dans le VBA, est-ce possible ou pas ?

    merci,
    - Même si la fonction est créée dan VBA elle est utilisable dans SQL comme indiqué en exemple dans le lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Tbl_projet.Projet, Recupparticipant(Projet) AS LesParticipants FROM Tbl_projet;
    - rien ne t'empêche de modifier le code pour l'adapter à ton cas en ajoutant un 2ème champ en paramètre:
    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
    Public Function RecupReperes(pArticle As String, pComposant As string) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Sélection articles
    SQL = "SELECT [repères] FROM TaTable WHERE Article ='" & pArticle & "' and composant='" & pComposant & "';"
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les enregistrements
    Do Until res.EOF
        RecupReperes = RecupReperes & res.Fields(0).Value & " "
        res.MoveNext
    Loop
     
    'Enleve le dernier espace
    RecupReperes = Rtrim(RecupReperes)
    'libere la mémoire
    Set res = Nothing
    End Function
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci pour les conseils

    du coup je suis passé par des requêtes pour obtenir une clé unique dans une des 2 tables ARTICLE & COMPOSANT (ce qui évite de le faire par VBA)

    maintenant que j'ai cette clé unique je veux sommer les repères dans la table1 venant de la table 2
    donc là obligé de passer par du VBA avec des boucles de recherches ! problème : je connais le VB mais la syntaxe VBA.....

    quelqu'un saurait m'écrire le code ? genre l'appel des tables etc...je sais pas faire et j'ai essayer en copiant des choses faites mais j'aime pas faire des choses que je ne comprends pas ^^

    voici en version simplifiée mes 2 tables :

    Nom : Capture.PNG
Affichages : 2487
Taille : 7,7 Ko

    je sais que je vais devoir passer par des variable string pour stocker mes valeurs mais la recherche dans les tables etc...pas réussi

    merci déjà pour l'aide apportée ! je n'ai plus que ce "petit" souci à résoudre

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Il n'y a pas d'autre option que de passer par du VBA.
    Le SQL de Access n'autorise pas la concaténation.
    Donc il faut faire du code pour lire les enregistrements 1 à 1 puis les mettre "bout à bout" dans une variable de type texte (string).

    Le code à utiliser est le même que celui déjà posté par tee_grandbois, à adapter à aux champs de ta nouvelle source de données.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    merci marot !

    effectivement avec ce qui m'a été communiqué j'ai juste pu faire la clé unique et je veux faire du VBA,

    le problème c'est que je vois pas du tout comment adapter le VBA de the_grandbois....je ne comprends pas le code...
    c'est avec recordset que j'ouvre ma table ?

    par exemple sur VBA excel si je veux chercher dans une feuille je mets do while sheets('feuil1').cells(I,1)<>"", comment je fais sur Access ?

    je n'ai pas trouvé dans les tutos les explications pour chercher dans une table avec les recordset etc...je ne connais pas du tout

    désolé

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Ok, je vais commenter le code de tee-Grandbois, ce qui devrait t'aider à l'adapter. N'hésite pas à poser des questions si ce n'est pas suffisant.

    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
    Public Function RecupReperes(pArticle As String, pComposant As string) As String
        Dim res As DAO.Recordset 'Défini un objet pour accéder aux données
        Dim SQL As String 'Défini une vraibale pour "écrire" le SQL de sélection
        'Sélection articles
        SQL = "SELECT [repères] FROM TaTable WHERE Article ='" & pArticle & "' and composant='" & pComposant & "';" 'Défini les critères pour sélectionner les données sur lesquelles on va travailler
        Set res = CurrentDb.OpenRecordset(SQL) 'Accède aux données sélectionnées.
        'Concatene les enregistrements
        Do Until res.EOF 'Boucle tant qu'il y a des données
            RecupReperes = RecupReperes & res![repères].Value & " " 'Récupère la valeur du repère et l'ajoute au résultat précédent. J'ai modifié le code d'origine car je n'aime pas les lectures positionnelles des données. Si tu bouges le champ, ton code devient faux.
            res.MoveNext 'Passe à la ligne de données suivante
        Loop
     
        'Enleve le dernier espace
         RecupReperes = Rtrim(RecupReperes) 'Fait le ménage dans le résultat en enlevant les blancs aux début et à la fin.
         'libere la mémoire
         res.close: Set res = Nothing 'Freme la source de données et libère la mémoire utilisée.
    End Function
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RecupReperes = RecupReperes & res![repères].Value & " "
    'Récupère la valeur du repère et l'ajoute au résultat précédent. J'ai modifié le code d'origine car je n'aime pas les lectures positionnelles des données. Si tu bouges le champ, ton code devient faux.
    bien vu, marot_r, mais comme le SQL = "SELECT [repères] FROM TaTable" ne ramènait qu'un seul champ, je l'y ai laissé ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    La fonction de tee n'est pas écrite dans les règles de l'art :

    1) manque byval pour les arguments de la fonction
    2) CurrentDb n'est pas affecté à une variable DAO.Database pour l'utiliser
    3) il manque un Group By au code SQL (surtout pas de Distinct par pitié...) car le même repère sera répété sans ça
    4) Pas d'option explicit dans l'ouverture du recordset, mettre dbOpenSnapshot
    5) Passer par une variable temporaire pour récupérer les repères puis affecter seulement à la fin à la fonction
    6) vu que recupreperes retourne un string, utiliser plutôt rtrim$ qui est plus rapide dans ce cas que rtrim
    7) les arguments de la fonction sont string, faut espérer qu'il n'y ait pas de Null dans la table...
    8) manque une gestion minimale d'erreur (sans msgbox...), surtout si la fonction est appelée depuis une requête...

    A part ça c'est pas mal

    J'aurais aussi ajouter un order by pour les repères c'est plus propre en lecture et 'and' dans le where du SQL devrait être en majuscule

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir galoir,
    bienvenue dan la discussion ...
    est-ce uniquement pour faire le buzz (ou la buse ?) ton intervention ?

    tu devrais critiquer aussi celui du forum ... https://access.developpez.com/source...QLLigneColonne
    car je m'en suis inspiré.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Citation Envoyé par galoir Voir le message
    La fonction de tee n'est pas écrite dans les règles de l'art :

    1) manque byval pour les arguments de la fonction
    C'est vrai mais comme on l'appelle d'une requête, je ne pense pas que cela fasse une différence. À mon avis Access passe par ByVal de toute façcon.

    2) CurrentDb n'est pas affecté à une variable DAO.Database pour l'utiliser
    Oui, mais selon ce que tu lis, il faut ou il ne faut pas. Perso je le fais toujours mais c'est parce que que j'ai validé sur une vielle version que cela faisait une différence mais pas depuis. Quelqu'un a testé avec une version récente de Access ?

    3) il manque un Group By au code SQL (surtout pas de Distinct par pitié...) car le même repère sera répété sans ça
    Le SQL du programme n'est pas le dernier SQL de Esusarcher qui a fait une requête de regroupement.

    4) Pas d'option explicit dans l'ouverture du recordset, mettre dbOpenSnapshot
    OK, c'est vrai que cela diminue environ par 2 le temps d'accès au données. Un gain à relativiser en fonction du nombre d'enregistrements retournés.

    5) Passer par une variable temporaire pour récupérer les repères puis affecter seulement à la fin à la fonction
    Voir la remarque du point 3.

    6) vu que recupreperes retourne un string, utiliser plutôt rtrim$ qui est plus rapide dans ce cas que rtrim
    Quelle est la différence de temps d'éxécution ?

    7) les arguments de la fonction sont string, faut espérer qu'il n'y ait pas de Null dans la table...
    Oui ou alors les paramètres sont traités en amont au moment de l'appel.
    Là encore c'est une histoire de philosophie et où tu mets les limites.

    8) manque une gestion minimale d'erreur (sans msgbox...), surtout si la fonction est appelée depuis une requête...
    Certes, cela n'aurait pas pu nuire, surtout sur un exemple destiné à un débutant. Mea Cupla, j'aurai du l'ajouter lors du commentaire.
    Et tu aurais pu le faire aussi, ce qui aurait été assez constructif :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  14. #14
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    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
    Public Function RecupReperes(pArticle As String, pComposant As string) As String
        on error goto err_RecupReperes
     
        Dim res As DAO.Recordset 'Défini un objet pour accéder aux données
        Dim SQL As String 'Défini une vraibale pour "écrire" le SQL de sélection
        'Sélection articles
        SQL = "SELECT [repères] FROM TaTable WHERE Article ='" & pArticle & "' and composant='" & pComposant & "';" 'Défini les critères pour sélectionner les données sur lesquelles on va travailler
        Set res = CurrentDb.OpenRecordset(SQL) 'Accède aux données sélectionnées.
        'Concatene les enregistrements
        Do Until res.EOF 'Boucle tant qu'il y a des données
            RecupReperes = RecupReperes & res![repères].Value & " " 'Récupère la valeur du repère et l'ajoute au résultat précédent. J'ai modifié le code d'origine car je n'aime pas les lectures positionnelles des données. Si tu bouges le champ, ton code devient faux.
            res.MoveNext 'Passe à la ligne de données suivante
        Loop
     
        'Enleve le dernier espace
         RecupReperes = Rtrim(RecupReperes) 'Fait le ménage dans le résultat en enlevant les blancs aux début et à la fin.
         'libere la mémoire
         res.close: Set res = Nothing 'Freme la source de données et libère la mémoire utilisée.
         exit function
     
    Err_RecupReperes:
         RecupReperes="#Erreur : " & err.number & ", " & err.description & "#" 'retourne l'erreur au cas où une survient.
     
    End Function
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    'Enleve le dernier espace
         RecupReperes = Rtrim(RecupReperes) 'Fait le ménage dans le résultat en enlevant les blancs aux début et à la fin.
         res.close
    fin:     
    'libere la mémoire
          Set res = Nothing 'Ferme la source de données et libère la mémoire utilisée.
         exit function
     
    Err_RecupReperes:
         RecupReperes="#Erreur : " & err.number & ", " & err.description & "#" 'retourne l'erreur au cas où une survient.
         Resume Fin

  16. #16
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    bonjour à tous,

    désolé de n'avoir répondu que maintenant mais j'avais d'autres développement en cours,

    donc avec vos conseils j'ai enfin trouvé,
    je vais essayer d'expliquer clairement une solution que j'ai retenu pour y arriver,

    Dans la table ou j'ai ma nomenclature j'ai créé une clé unique composée de produitcomposant
    j'ai créé une seconde table ou pour chaque ligne je vais créer le champ produitcomposant et mettre en face un résultat que je vais implémenter tant que ma clé ne change pas (il faut bien organiser la table pour que cela concatène bien dans la bonne case. En voici le code de concaténation :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Dim rep As dao.Recordset
    Dim concat As dao.Recordset
    Dim a As String, b As String
     
    Set rep = CurrentDb.OpenRecordset("R_repère")
    Set concat = CurrentDb.OpenRecordset("T_repère_concat")
     
     
    rep.MoveFirst
    a = rep!Clé
    b = rep!REPERE
    While Not rep.EOF
       rep.MoveNext
       If rep.EOF = True Then
            concat.AddNew
            concat!Clé = a
            concat!repères = b
            concat.Update
            concat.Bookmark = concat.LastModified
            Exit Sub
        End If
     
       If rep!Clé = a Then
            b = b & " " & rep!REPERE
        Else
            concat.AddNew
            concat!Clé = a
            concat!repères = b
            concat.Update
            concat.Bookmark = concat.LastModified
            a = rep!Clé
            b = rep!REPERE
        End If
     
    Wend
     
    Set rep = Nothing
    Set concat = Nothing
    ensuite je fais une requête de mise à jour qui va aller modifier le repère par rapport à la clé unique de ma table nomenclature et de la clé unique de la table repère que j'ai créé qui à en face, une case repère concaténée

    merci pour votre aide !

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

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    De mémoire il y a cette fonction pour concatener des lignes en colonne.
    "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

  18. #18
    Candidat au Club
    Homme Profil pro
    Ingénieur supply chain
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    hum...je vais étudier ça

    je pense que je gagnerai en temps de calcul car le VBA c'est long....

    je vérifie et si j'y arrive je posterai !

    merci bien

  19. #19
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Cette fonction est aussi en VBA.

    Une façon de masquer le temps de calcul est de stocker le résultat de la concaténation au fur et à mesure des modifications.
    Donc quand dans un formulaire tu détectes que tu manipules une donnée à concaténer, tu appelles immédiatement la concaténation puis tu stockes le résultat quelque part.
    Ensuite lors de l'exploitation des données tu te contentes d'afficher le résultat déjà calculé.

    Attention comme avec tout résultat stocké, il ne faut pas manquer les modifs sinon tu vas avoir des incohérences.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/04/2011, 18h52
  2. modifier des informations avec hibernate
    Par gentil dans le forum Hibernate
    Réponses: 4
    Dernier message: 13/04/2007, 12h59
  3. [PHP-JS] Tracer des informations avec PHP
    Par elspliffo dans le forum Langage
    Réponses: 5
    Dernier message: 26/12/2006, 19h35
  4. probleme d'affichage des informations avec quickrep
    Par hamadi_insat dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/09/2006, 19h31
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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