Bonjour a tous,
grace à un tutoriel trouvé sur ce forum, j'ai utilisé un code VB pour concaténer mes données :
Champ1 : N° Document
Champ2 : Postes
j'ai donc par exemple pour le document 1, 3 postes (A, B et C) que je voudrais voir en une seule ligne.
J'ai donc le code suivant dans un module :
Puis dans une requete SQL:
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 Option Compare Database Option Explicit Public Function RecupPoste(Numdoc As Long) As String Dim res As DAO.Recordset Dim SQL As String 'Selectionne les postes associés au document SQL = "SELECT Postes FROM T_Postes WHERE [N° Document]=" & Numdoc Set res = CurrentDb.OpenRecordset(SQL) 'Concatene les différents enregistrement While Not res.EOF RecupPoste = RecupPoste & res.Fields(0).Value & " " res.MoveNext Wend 'Enleve le dernier espace RecupPoste = Left(RecupPoste, Len(RecupPoste) - 1) 'libere la mémoire Set res = Nothing End Function
Impossible d'afficher le résultat! j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT DISTINCT T_postes.[N° Document], RecupPoste(Numdoc) AS postes FROM T_Postes;
Je n'ai pas de champ numérique dans ma table, et je ne vois pas comment simplifier ma requete... quelqu'un peut-il m'aider????Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectatnt des parties à des variables.
Merci d'avance.
Partager