Concatener deux lignes dans un meme ligne
mouss
-
Gord21 Messages postés 928 Statut Membre -
Gord21 Messages postés 928 Statut Membre -
Bonjour,
je suis noviste ici, peut etre que le sujet à été aborder, j'ai bon cherche sur le net, mais sans safisfaction. voila j'ai deux table l un nomer dispensaire (id_disp, denomination, ville,region) et l'autre table nomee medecin(id_med,nom,prenom,tele,adresse,id_disp). je doit faire un formulaire qui envoie toutes les medecins rattacher à une dispensaire. dans un premier temps, j'ai fait une requette avec regroupement :
SELECT Dispensaire.denomination AS dispensaire, Medecin.[nom]+" "+[prenom] AS medecin
FROM Dispensaire RIGHT JOIN Medecin ON Dispensaire.id_dispensaire = Medecin.id_dispensaire
GROUP BY Dispensaire.denomination, Medecin.[nom]+" "+[prenom];
dispensaire | medecin
1001 Soins - Centre Médical La Bricarde |Abadie Jean-Pierre
1001 Soins - Centre Médical La Bricarde |Abbou Roger
Abeille Jérôme |Achard Catherine
ARAIMC |Alessandrini Eric
ARAIMC | Almaleh Michel
ce que je veux c'est de concatener qu'on il s'agit des meme enregistrement, c'est a dire avoire le tablaeau suivant:
dispensaire | medecin
1001 Soins - Centre Médical La Bricarde |Abadie Jean-Pierre, Abbou Roger
Abeille Jérôme |Achard Catherine
ARAIMC |Alessandrini Eric, Almaleh Michel
j'ai essayer un code vba, mais j'avoue que je suis tres debutant en vba. si quelqu'un pourra m'aider à aficher cette requete de la sorte merci.
je suis noviste ici, peut etre que le sujet à été aborder, j'ai bon cherche sur le net, mais sans safisfaction. voila j'ai deux table l un nomer dispensaire (id_disp, denomination, ville,region) et l'autre table nomee medecin(id_med,nom,prenom,tele,adresse,id_disp). je doit faire un formulaire qui envoie toutes les medecins rattacher à une dispensaire. dans un premier temps, j'ai fait une requette avec regroupement :
SELECT Dispensaire.denomination AS dispensaire, Medecin.[nom]+" "+[prenom] AS medecin
FROM Dispensaire RIGHT JOIN Medecin ON Dispensaire.id_dispensaire = Medecin.id_dispensaire
GROUP BY Dispensaire.denomination, Medecin.[nom]+" "+[prenom];
dispensaire | medecin
1001 Soins - Centre Médical La Bricarde |Abadie Jean-Pierre
1001 Soins - Centre Médical La Bricarde |Abbou Roger
Abeille Jérôme |Achard Catherine
ARAIMC |Alessandrini Eric
ARAIMC | Almaleh Michel
ce que je veux c'est de concatener qu'on il s'agit des meme enregistrement, c'est a dire avoire le tablaeau suivant:
dispensaire | medecin
1001 Soins - Centre Médical La Bricarde |Abadie Jean-Pierre, Abbou Roger
Abeille Jérôme |Achard Catherine
ARAIMC |Alessandrini Eric, Almaleh Michel
j'ai essayer un code vba, mais j'avoue que je suis tres debutant en vba. si quelqu'un pourra m'aider à aficher cette requete de la sorte merci.
A voir également:
- Concatener deux lignes dans un meme ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Concatener deux cellules excel - Guide
- Formulaire en ligne de meta - Guide
- Comment faire deux colonnes indépendantes dans word - Guide
2 réponses
Quel SGBD utilises tu?
Selon celui que tu utilises tu peux peut être "coder" ta fonction directement en SQL, j'pense que quelques recherches sur ton SGBD et la possibilité de faire une procédure t'aideront.
Pour le VB(A) il faut creuser un peu, sur le net c'est l'un des langages les plus documentés.
Selon celui que tu utilises tu peux peut être "coder" ta fonction directement en SQL, j'pense que quelques recherches sur ton SGBD et la possibilité de faire une procédure t'aideront.
Pour le VB(A) il faut creuser un peu, sur le net c'est l'un des langages les plus documentés.
Bonsoir,
Puisque tu parles de VBA, je supposes que tu utilises Excel d'où ce code :
Sub Concatener()
'
' Déclaration des variables
'--------------------------
Dim rang_en_cours As Long
'
' Initialisation de la variable rang_en_cours
'--------------------------------------------
rang_en_cours = 2
'
' Tant qu'on n'a pas atteint la fin de la feuille
'------------------------------------------------
While rang_en_cours <= ActiveSheet.UsedRange.Rows.Count
If Range("A" & rang_en_cours - 1).Value = Range("A" & rang_en_cours).Value Then
' Si les valeurs en A(n) et A(n-1) sont les mêmes on concatène
'-------------------------------------------------------------
Range("B" & rang_en_cours - 1).Value = Range("B" & rang_en_cours - 1).Value & ", " & Range("B" & rang_en_cours).Value
Rows(rang_en_cours).Delete Shift:=xlUp
Else
' Sinon, on passe à la ligne suivante
rang_en_cours = rang_en_cours + 1
End If
Wend
End Sub
Puisque tu parles de VBA, je supposes que tu utilises Excel d'où ce code :
Sub Concatener()
'
' Déclaration des variables
'--------------------------
Dim rang_en_cours As Long
'
' Initialisation de la variable rang_en_cours
'--------------------------------------------
rang_en_cours = 2
'
' Tant qu'on n'a pas atteint la fin de la feuille
'------------------------------------------------
While rang_en_cours <= ActiveSheet.UsedRange.Rows.Count
If Range("A" & rang_en_cours - 1).Value = Range("A" & rang_en_cours).Value Then
' Si les valeurs en A(n) et A(n-1) sont les mêmes on concatène
'-------------------------------------------------------------
Range("B" & rang_en_cours - 1).Value = Range("B" & rang_en_cours - 1).Value & ", " & Range("B" & rang_en_cours).Value
Rows(rang_en_cours).Delete Shift:=xlUp
Else
' Sinon, on passe à la ligne suivante
rang_en_cours = rang_en_cours + 1
End If
Wend
End Sub
SELECT Dispensaire.denomination, [nom]+[prenom] AS MEDECIN
FROM Dispensaire RIGHT JOIN Medecin ON Dispensaire.id_dispensaire=Medecin.id_dispensaire;
maintenant je doit concatener tt ca :
denomination |MEDECIN
1001 Soins - Centre Médical La Bricarde |AbadieJean-Pierre
1001 Soins - Centre Médical La Bricarde |AbbouRoger
Abeille Jérôme |AchardCatherine
ARAIMC |AlessandriniEric
ARAIMC |AlmalehMichel
j'ai creer un code vba que j'ai trouver sur le net :
Option Compare Database
Public Function RecupParticipant(denomination As Long) As String
Dim res As DAO.Recordset
Dim SQL As String
'Selectionne les participant du projet
SQL = "SELECT MEDECIN FROM R1 WHERE denomination=" & denomination
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrement
While Not res.EOF
RecupParticipant = RecupParticipant & res.Fields(0).Value & " "
res.MoveNext
Wend
'Enleve le dernier espace
RecupParticipant = Left(RecupParticipant, Len(RecupParticipant) - 1)
'libere la mémoire
Set res = Nothing
End Function
mais rien qui sort
le code que j ai crée travail sur une requete