Concaténer des cellules sur access

Matthieu -  
lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis dans la panade sur access.
J'ai un tableau de trois colonnes : Service (texte), N° service rendu (numérique), Description (mémo).
à 1 service correspond plusieurs numéro de service rendu et à 1 numéro de service rendu correspond plusieurs description.

en gros ça donne :

Service N°service rendu Description

AIDE 4050 Le client n'arrive pas à...
AIDE 4050 Le technicien dit que...
AIDE 4050 Pb résolu
HOT-LINE 1224 Perte de données...
HOT-LINE 1224 reboot des serveurs, pb résolu.
AIDE 4250 xxxxxx
AIDE 4250 yyyyy
HOT-LINE 1225 zzzzz
... ... ...

Le but est d'obtenir une table sous la forme:

Service N°service rendu Description

AIDE 4050 Le client n'arrive pas à... le technicien dit que... Pb résolu
HOT-LINE 1224 Perte de données... reboot des serveurs, pb résolu.
AIDE 4250 xxxxx yyyyyy
HOT-LINE 1225 zzzzz

Voilà je suis complètement paumés. Je n'y connait rien en sql ou en vba donc si quelqu'un peut me donner un coup de main ce serait très sympa.
J'espère que j'ai été assez clair pour vous exposer le problème.
Merci d'avance pour vos réponses.

Matthieu

5 réponses

  1. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Salut,

    Ta table est construite dans ta base ?

    Montre moi la requête sql qui t'afiche le résultat
    0
  2. Matthieu
     
    Oui en fait ma table est dans ma base mais c'est un import de données excel. Le problème quand je veux faire des requête dessus c'est que ma colonne description qui est un champ mémo à des pertes.

    Quelque soit la requête que je fais, les cellule du champs description qui contiennent beaucoup de caractères sont pour la plupart coupées à la fin.

    De plus les 3 colonnes dont je parle ne sont qu'une sélection d'une table de 14 colonnes et j'ai environ 10900 enregistrements.

    En fait la base excel d'origine est générée automatiquement par un autre service que celui dont je dépends.

    Merci pour le coup de main

    matthieu
    0
  3. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Ma solution.

    Tu récupère en vba les données grâce à ta requête que tu stocke dans une DataTable (virtuel):

    Dim sRequete As String = "" 
    Dim dDataTable as DataTable 
    Dim oDataRow as DataRow 
    
    sRequete = " SELECT * FROM ... WHERE Service ='Critere1' AND N° service rendu = 'Critere2' " 
    dDataTable = MyDB.GetDT(sRequete) 
    


    Puis tu boucle sur les enregistrements
    Et tu concatène dans une chaîne le résultat

    
    Dim sResultat As String = "Critere1 Critere2" 
    For Each oDataRow in dDataTable.Rows 
        
    sResultat += NzStr(oDataRow!Description) 
    
    Next 
    
    


    En revanche je connais ce code en Vb.Net je ne sais pas si c'est la même syntaxe en vba

    PS : tiens moi au courant ! et n'hésite pas si tu as des quesitons !

    :)
    0
  4. Matthieu
     
    Bon a priori ça ne fonctionne pas. est ce que je dois compléter avec quelque chose dans le string du début?

    Dans tous les cas merci beaucoup.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lucas06150 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   11
     
    Par exemple pour AIDE 4050 ça donnerais ça:

    Requete = " SELECT * FROM TA_TABLE WHERE Service ='AIDE' AND N° service rendu = 1045 "

    Je me suis trompé sur les quotes au niveau du numéro du service. Il n'y en a pas puisque c'est un Integer
    0