Bonjour,
Voici une fonction provenant de la fag permettant de concaténer plusieurs enregistrements sur la même ligne.
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
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
Quand Support(S.Chrono) est NULL alors que Expose(E.Chrono) ne l'est pas la requête ne me retourne aucune ligne.
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
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
Partager