Bonjour,
Sur un état, je désire concaténer dans une même zone de texte l'ensemble des résultats d'une requête (il s'agit d'une liste de noms séparés par des virgules).
Cela est-il possible
Merci
Bonjour,
Sur un état, je désire concaténer dans une même zone de texte l'ensemble des résultats d'une requête (il s'agit d'une liste de noms séparés par des virgules).
Cela est-il possible
Merci
- Veux tu concatener différents champs disponibles dans un etat dans un nouveau champ ?
- Ou souhaites tu utiliser la valeur d'un champ dont les éléments sont séparrés par une virgule ???:!
Je souhaite dans une même zone de texte, regrouper tous les résultats d'une requête. En fait sur mon état, il me faut afficher une liste de noms sous forme de paragraphe et non sous forme de colonne comme cela se produit avec un simple champ texte.
J'espère être assez clair.
Avec mes remerciements pour s'intéresser à mes petits problèmes.
désolé mais je n'ai pas d'idée ... Je suis certain qu'une des nombreuses ames charitables du forum saura t'orienter ...
Salut YLL,
Ton rapport est basé sur une requête ou une table ? Non ?
Il faut que tu construise une fonction qui parcourt les enregistrements de ta table et concatène tes noms.
Fonction à insérer dans un module
Ensuite tu peux avoir sur ton rapport un contrôle dont la source controle est :
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 Public Function CumuleNom() As String Dim strSQL As String Dim conConnection As ADODB.Connection Dim recSet As New ADODB.Recordset Dim i As Integer On Error Resume Next Set conConnection = CurrentProject.Connection 'A Remplacer par le code SQL de ta requête source du Rapport strSQL = "SELECT tbl_VH_VéHicules.fldVH_VHNo " strSQL = strSQL & " FROM tbl_VH_VéHicules " Set recSet = New ADODB.Recordset recSet.Open strSQL, conConnection, adOpenKeyset, adLockOptimistic If recSet.EOF = True And recSet.BOF = True Then CumuleNom= "" Exit Function recSet.Close End If With recSet i = 0 .MoveFirst While Not .EOF If i = 0 Then CumuleNom= ![fldVH_VHNo] Else CumuleNom= CumuleNom& "-" & ![fldVH_VHNo] End If i = i + 1 .MoveNext Wend End With recSet.Close conConnection.Close End Function
= CumuleNom()
Tiens nous au courant si ca te va !!!
Merci pour ce code, il convient presque ....
car j'ai rajouté une couche.
Dans mon rapport basé sur une requête, j'ai concatené dans un contrôle la valeur de 3 autres
Exemple =
champ1 "titre"
champ2 "nom"
champ3 "prenom"
soit = titre &" "&prenom &" "&nom
résultat : Mme Anne BROCHET
M. Louis BLANC
Je désirerais avoir dans un même contrôle : Mme Anne BROCHET, M. Louis BLANC etc..
En renouvelant mes remerciements.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager