Bonjour,

Voici une fonction provenant de la fag permettant de concaténer plusieurs enregistrements sur la même ligne.

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
 
Public Function Support(Projet As Long) As String
Dim res As DAO.Recordset
Dim SQL As String
'Selectionne les participant du projet
SQL = "SELECT Support FROM Support WHERE Chrono=" & Projet
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrement
While Not res.EOF
Support = Support & res.Fields(0).Value & " + "
res.MoveNext
Wend
'Enleve le dernier espace
Support = Left(Support, Len(Support) - 3)
'libere la mémoire
Set res = Nothing
End Function
 
Public Function Expose(Projet As Long) As String
Dim res As DAO.Recordset
Dim SQL As String
Dim var As String
var = "Présentation autour de la maquette"
'Selectionne les participant du projet
SQL = "SELECT Expose FROM Expose WHERE Chrono= " & Projet & " And Expose<>'Présentation autour de la maquette'"
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrement
While Not res.EOF
Expose = Expose & res.Fields(0).Value & " + "
res.MoveNext
Wend
'Enleve le dernier espace
If Expose <> Null Then
Expose = Left(Expose, Len(Expose) - 3)
End If
'libere la mémoire
Set res = Nothing
End Function
J'utilisa donc une requête sql pour concaténer le résultat de ces deux fonctions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT DISTINCT S.Chrono, Support(S.Chrono)  & Iif((Support(S.Chrono)<> NULL) And  (Expose(E.Chrono) <> NULL)," + ", "") &  Expose(E.Chrono)  As Support
FROM Support S INNER JOIN  Expose E
ON S.Chrono = E.Chrono
Quand Support(S.Chrono) est NULL alors que Expose(E.Chrono) ne l'est pas la requête ne me retourne aucune ligne.
Et quand Expose(E.Chrono) est null, et que Support(S.Chrono) ne l'est pas, le " + " ne devrait pas apparaitre alors qu'il est bien présent(mais ici contrairement au premier cas les lignes sont quand même retournées)

D'ou pourrait venir le problème.


Merci d'avance