Regrouper et concaténer dans le même champ
Résolu/Fermé
mahrezs
Messages postés
10
Date d'inscription
jeudi 25 novembre 2021
Statut
Membre
Dernière intervention
24 mars 2022
-
20 mars 2022 à 17:43
mahrezs Messages postés 10 Date d'inscription jeudi 25 novembre 2021 Statut Membre Dernière intervention 24 mars 2022 - 24 mars 2022 à 07:53
mahrezs Messages postés 10 Date d'inscription jeudi 25 novembre 2021 Statut Membre Dernière intervention 24 mars 2022 - 24 mars 2022 à 07:53
A voir également:
- Regrouper et concaténer dans le même champ
- Comment regrouper des pdf - Guide
- Concatener deux cellules excel - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Comment regrouper des applications sur android - Accueil - Guide Android
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
3 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
21 mars 2022 à 11:23
21 mars 2022 à 11:23
bonjour,
Je pense que ton code VBA est capable de faire cela sur base d'une requête aussi bien que sur base d'une table.
Il suffit donc de commencer par faire une requête qui rassemble ce dont tu as besoin, puis une seconde requête du même style que celle que tu nous montres, qui utilises la première requête comme source.
Je pense que ton code VBA est capable de faire cela sur base d'une requête aussi bien que sur base d'une table.
Il suffit donc de commencer par faire une requête qui rassemble ce dont tu as besoin, puis une seconde requête du même style que celle que tu nous montres, qui utilises la première requête comme source.
mahrezs
Messages postés
10
Date d'inscription
jeudi 25 novembre 2021
Statut
Membre
Dernière intervention
24 mars 2022
22 mars 2022 à 20:15
22 mars 2022 à 20:15
Bonjour,
Je vous remercie pour votre aide, oui ça fonctionne bien avec une requête.
Hélas, j’ai toujours un souci, ça ne marche pas quand le champ regroupé est une clé primaire. J’espère trouver une solution chez vous, comme toujours.
J’ai réalisé un p’tit exemple :
https://drive.google.com/file/d/1_w1N1reWv5M5s1Hr6llZdtjAPTc2DDOq/view?usp=sharing
Y’a deux requêtes dans l’exemple :
1° : R_Cancaténer , elle fonctionne bien avec de simples champs ;
2° : R_Cancaténer_ID , elle fonctionne pas quand le champ regroupé est une clé primaire.
Merci bien.
Je vous remercie pour votre aide, oui ça fonctionne bien avec une requête.
Hélas, j’ai toujours un souci, ça ne marche pas quand le champ regroupé est une clé primaire. J’espère trouver une solution chez vous, comme toujours.
J’ai réalisé un p’tit exemple :
https://drive.google.com/file/d/1_w1N1reWv5M5s1Hr6llZdtjAPTc2DDOq/view?usp=sharing
Y’a deux requêtes dans l’exemple :
1° : R_Cancaténer , elle fonctionne bien avec de simples champs ;
2° : R_Cancaténer_ID , elle fonctionne pas quand le champ regroupé est une clé primaire.
Merci bien.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
22 mars 2022 à 20:51
22 mars 2022 à 20:51
"ça ne marche pas": message d'erreur, résultat inattendu, ..., ?
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
22 mars 2022 à 21:06
22 mars 2022 à 21:06
Ta fonction est prévue pour un champ texte, pas pour un champ numérique.
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
1 557
>
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
22 mars 2022 à 21:13
22 mars 2022 à 21:13
Une façon de corriger cela, c'est de créer une seconde fonction, similaire, pour les cas où le type du champ est numérique, et d'appeler cette fonction quand nécessaire:
Au lieu d'utiliser deux fonctions presque identiques, il serait peut-être préférable d'ajouter un paramètre à la fonction, pour préciser si le champ est numérique ou pas. J'ai fait au plus simple et au plus rapide, pour que tu puisses confirmer que cela fonctionne.
Function ConcatForQuerynum(strRegroup As String, fldRegroup As String, _ strConcat As String, strTable As String, _ Optional strSep As String = "/") As String '** Regroupement de donnée sur le champ fldRegroup '** et concaténation sur le champ strConcat Dim db As Database Dim rst As Recordset Dim strResult As String Dim strRst As String Set db = CurrentDb() strRst = "Select * From [" & strTable & "] " _ & "Where [" & strRegroup & "] = " & fldRegroup & ";" Set rst = db.OpenRecordset(strRst, dbOpenDynaset) With rst If Not .BOF Then .MoveFirst Do Until .EOF If strResult = "" Then strResult = .Fields(strConcat) Else strResult = strResult & strSep & .Fields(strConcat) End If .MoveNext Loop End If End With rst.Close: Set rst = Nothing db.Close: Set db = Nothing ConcatForQuerynum = strResult End Function
Au lieu d'utiliser deux fonctions presque identiques, il serait peut-être préférable d'ajouter un paramètre à la fonction, pour préciser si le champ est numérique ou pas. J'ai fait au plus simple et au plus rapide, pour que tu puisses confirmer que cela fonctionne.
mahrezs
Messages postés
10
Date d'inscription
jeudi 25 novembre 2021
Statut
Membre
Dernière intervention
24 mars 2022
24 mars 2022 à 07:53
24 mars 2022 à 07:53
Bonjour, j
Je vous remercie , votre code fonction très bien.
Encore merci à vous, vraiment c’est gentil de votre part.
Bonne journée
Je vous remercie , votre code fonction très bien.
Encore merci à vous, vraiment c’est gentil de votre part.
Bonne journée