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

VBA Access Discussion :

[A-03] concaténer des chaines de 2 enregistrements


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 52
    Par défaut [A-03] concaténer des chaines de 2 enregistrements
    salut
    je cherche à concaténer des chaines de deux enregistrements différents.

    exemple: 4.4
    (a)

    le résultat que je voudrais c'est d'avoir 4.4(a).

    il se peut que avant la ligne (a) qu'il est 4.4.1 donc
    4.4
    4.4.1
    (a)

    le résultat c'est que 4.4 est lié à 4.4.1 ce dernier lié à (a)

  2. #2
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonjour,

    Je ne vois pas trop bien où tu veux en venir mais, à première vuie, je ne vois guère d'autres solutions que de passer par une boucle sur un recordset pour analyser tes lignes séquentiellement...

    Il serait bon que tu en dises plus sur ton objectif:
    - que veux-tu faire de ta valeur concaténée
    - quelle est la nature de ta source (table?)
    - sous quelle forme cherches-tu à obtenir le résultat (table, requête, recordset, autre)?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 52
    Par défaut Concaténation
    Merci
    j'ai importer un fichier word qui a créé une table qui à un champ: par exemple

    4.4 texte
    4.4.1.1 texte
    (a) texte
    4.4.1.2 texte
    (a) texte
    (b) texte
    4.4.1.3 texte
    (a) texte
    (1) texte
    (b) texte

    jai extrait les numéros pour les mettre dans un autre champ à partir d'une requète qui ne contiendra que les numéros. donc j'ai maintenant deux champs (Numero et texte)

    Maintenant puisque une ligne dépend de celui que la précéde je voudrais avoir le resulte suivant
    4.4
    4.4.1.1
    4.4.1.1(a)
    4.4.1.2
    4.4.1.2(a)
    4.4.1.1(b)
    4.4.1.1(3)
    ect...

    Quand j'aurai ce champ j'airai ça je vais envoyé chaque enregistrement dans une table ou il doit être logée.

    Jespère que ceci est plus claire

    MERCI

    j'utilise access 2003

  4. #4
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Ok,

    En supposant que
    • ta table source s'appelle tblSource
    • le champ de la source s'appelle Numero
    • ta table destination s'appelle tblDest
    • le champ destination s'appelle NumChap


    Cela pourrait être un code du genre:
    (écrit en direct dans ce messag, donc non testé)

    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
    Dim orstS as DAO.Recordset
    Dim orstD as DAO.Recordset
    Dim oDB as Database
    DIm sLastChap as String
     
    set oDB= currentdb
    Set orstS = oDB.OpenRecordset("tblSource")
    Set orstD = oDB.OpenRecordset("tblDest")
     
    while not orstS.EOF
        if left(orstS!Numero,1)="(" then
            orstD.AddNew
                  orstD!NumChap = sLastChap & orstD!Numero
            orstD.Update 
        else
            sLastChap = orstS!Numero
        endif
        orst.Movenext
    wend
    orstS.Close : Set orstS = nothing
    orstD.Close : Set orstD = nothing

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 52
    Par défaut Concaténation
    bonjour,
    ce code à partir d'ou je dois le saisir ?
    Est ce je passe par macros car ces genres de code je les entrer par les formulaire.

    Mais à partir des tables, je n' ai jamais mis ce genre de code.

    Merci

  6. #6
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonjour,

    Il s'agit de code VBA qu'il te faudra placer dans une fonction ou une procédure, le tout dans un module.


    SI tu ne connais pas du tout le VBA, je pense qu'il vaudrait mieux que tu commences par apprendre ce langage et son exploitation sous Access, ou abandonner la solution que je t'ai proposée.

    A ce sujet, tu as bien sur l'aide d'Access et les tutos de developpez qui peuvent t'aider http://access.developpez.com/cours/?...uto#langagevba.


    Bon courage

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/09/2019, 13h45
  2. concaténation des chaines
    Par maryem_kh dans le forum Débuter
    Réponses: 4
    Dernier message: 01/02/2013, 11h59
  3. Réponses: 1
    Dernier message: 30/01/2013, 21h15
  4. concaténer des chaines sous un shell
    Par illegalsene dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 09/02/2008, 15h18
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 22h56

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