Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1149 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Concaténer dans un champ

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] Concaténer dans un champ

n°2144173
the_skwi
Posté le 31-05-2012 à 15:44:59  profilanswer
 

Bonjour,
 
Que ce soir sur google ou sur le forum je n'arrive pas à trouver mon bonheur. Je suis tombé sur ça mais je ne sais pas si je peux l'adapter à ma situation.
 
Voici ce que j'ai :
 
Champ1 Champ2 Champ3 Champ4
1          2          3          a
1          2          3          b
1          2          3          c
1          2          3          d
4          5          6          z
4          5          6          x
 
et je voudrais
 
Champ1 Champ2 Champ3 Champ4
1          2          3          a,b,c,d
4          5          6          z,x
 
Est-ce possible de faire ça en choisissant le délimiteur?
Merci

mood
Publicité
Posté le 31-05-2012 à 15:44:59  profilanswer
 

n°2145780
the_skwi
Posté le 14-06-2012 à 10:36:19  profilanswer
 

nobody?

n°2146433
the_skwi
Posté le 19-06-2012 à 15:30:26  profilanswer
 

même pas une p'tite idée?

n°2149242
the_skwi
Posté le 13-07-2012 à 14:38:08  profilanswer
 

up :(

n°2149251
vave
Nice to meet me
Posté le 13-07-2012 à 14:53:34  profilanswer
 

Bonjour,
peut-être en passant par une requête récursive si access le permet ??
MSQuery les accepte donc je pense qu'access aussi.
 
Voir un super tuto ici


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2149291
the_skwi
Posté le 13-07-2012 à 20:31:19  profilanswer
 

J'ai finalement résolu mon problème en créant une fonction en vba.
Je poste le code lundi si je n'oublie pas, ça pourrait en aider...

n°2149630
the_skwi
Posté le 17-07-2012 à 11:20:53  profilanswer
 

Donc mes recherches ont abouties à : ça existe en mysql, en oracle 11+ mais pas en access. Il faut donc passer par du code VBA, mais ce que j'ai trouvé est très lourd et la requête qui doit calculer 90.000 champs à concaténer prend plus de 30mn à s'exécuter, alors qu'elle n'en prend que quelques secondes si on affiche avec les doublons (plusieurs lignes au lieu de regrouper)
 
J'ai trouvé ça sur un autre site :
http://access.developpez.com/sources/?page=Requete
 
que j'ai adapté à ma sauce :
Public Function concatListe(champ As String, table As String, nomPK As String, primaryKey As Integer) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les participant du projet
    SQL = "SELECT " & champ & " FROM " & table & " WHERE " & nomPK & "=" & primaryKey
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrement
    While Not res.EOF
    concatListe = concatListe & res.Fields(0).Value & " / "
    res.MoveNext
    Wend
    'Enleve les derniers caractères
    If Len(concatListe) > 2 Then
        concatListe = Left(concatListe, Len(concatListe) - 3)
    End If
    'libere la mémoire
    Set res = Nothing
End Function
 
Si ça peut aider d'autres personnes...
Et si vous voyez une façon plus simple ou plus efficace de faire ça sous Access, merci de me le dire :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Concaténer dans un champ

 

Sujets relatifs
VBa : Dédoublonnage (Access 2007)plusieur TCD sur le même formulaire access
[ACCESS 2007] mise à jour de formulaire basé sur une liste déroulantelistes déroulantes liées sur access 2010
Probleme de champaccess 2007 erreur 2950
besoin d'une petite ligne VBA pour AccessACCESS - màj zone déroulante par le code
Trigger qui incrémente un champAccess connexion Help
Plus de sujets relatifs à : [Access] Concaténer dans un champ


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR