Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Concaténer des enregistrements

8 réponses
Avatar
Georges
Bonjour,
Dans mon application, j'ai créé une table T01Nom.
Est-il possible à l'aide d'une requète pouvoir concaténer tous les
enregistrements dans une seule cellule ?
D'avance merci pour votre aide

Georges

8 réponses

Avatar
Le meruvien
Salut geaorges, que veut-tu dire par "concaténer tous les enregistrements
dans une seule cellule " ?
dans cette table tu as plusieurs champs et tu veut les concaténer tous dans
un seul ?
roger


"Georges" a écrit dans le message de
news:
Bonjour,
Dans mon application, j'ai créé une table T01Nom.
Est-il possible à l'aide d'une requète pouvoir concaténer tous les
enregistrements dans une seule cellule ?
D'avance merci pour votre aide

Georges




Avatar
Georges
Bonsoir Roger,

Tu as raison il faut que je sois plus clair dans mes explications.
J'ai une table T01Nom qui contient un nombre d'enregistrements variable
du type "Vincent","François", "Paul", "et les autres".
Je souhaite avoir dans un formulaire une cellule qui a pour résultat la
concaténation de tous les enregistrements de cette table.
Dans cet exemple , il me faudrait donc une cellule du type
"Vincent,François, Paul, et les autres".
Merci encore pour ton aide.
Cdt
Georges


"Le meruvien" a écrit :

Salut geaorges, que veut-tu dire par "concaténer tous les enregistrements
dans une seule cellule " ?
dans cette table tu as plusieurs champs et tu veut les concaténer tous dans
un seul ?
roger


"Georges" a écrit dans le message de
news:
> Bonjour,
> Dans mon application, j'ai créé une table T01Nom.
> Est-il possible à l'aide d'une requète pouvoir concaténer tous les
> enregistrements dans une seule cellule ?
> D'avance merci pour votre aide
>
> Georges
>
>





Avatar
RideHicul
Salut Georges,

Ben ... à part passer par un bout de code je vois pas ...

Ma solution avec un poil de code :

Ce qu'il te faut :
-----------------
1) Une table "T01Nom"
Dans cette table, au minimum un champ "NOM"
Dans ce champ, tes données (Vincent, François, ...)

2) Un formulaire (nom quelconque)
Dans ce formulaire :
- Un bouton de commande "Command0"
- Une zone de texte "Texte1"

Le code :
-------------
Je sais pas si tu as l'habitude de coder ...
Comme tu parle de "cellule", je pense qu'il est préférable que je détaille
un peu ;-)

Donc :
1) Commence par copier les lignes ci-dessous (de "Set rst ..." à
"rst.close")

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic

compil = ""
rst.MoveFirst

Do While Not (rst.EOF)
compil = compil & rst!Nom & ", "
rst.MoveNext
Loop
Texte1 = compil

rst.Close


2) Dans Access, sur le bouton de commande, tu fais un clic droit et tu
choisi "Créer code evenement"
L'éditeur Visual Basic s'ouvre avec les 2 ligne suivantes (le curseur
clignotant est entre les 2) :


Private Sub Commande0_Click()

End Sub


3) Colle à cet endroit
4) Fait "Fichier - Fermer et retourner à Microsoft Access"
5) Enregistre et teste.

Voili, il y a sans doute plus propre mais c'est déjà un début...


RideHickul

"Georges" a écrit dans le message de
news:
Bonsoir Roger,

Tu as raison il faut que je sois plus clair dans mes explications.
J'ai une table T01Nom qui contient un nombre d'enregistrements variable
du type "Vincent","François", "Paul", "et les autres".
Je souhaite avoir dans un formulaire une cellule qui a pour résultat la
concaténation de tous les enregistrements de cette table.
Dans cet exemple , il me faudrait donc une cellule du type
"Vincent,François, Paul, et les autres".
Merci encore pour ton aide.
Cdt
Georges


"Le meruvien" a écrit :



Avatar
RideHicul
Précision (pour cause de saleté de retour à la ligne automatique) !

Les lignes 3 et 4 n'en forme qu'une !
Donc, supprime le retour à la ligne après "CurrentProject.connection, "

La ligne suivante doit être complète et en une seule ligne (nouvelle
tentative) :
-----
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic
-----

RideHickul
Avatar
Georges
Bonsoir RideHicul ( loin de là)

Alors là moi je dis bravo.
Non seulement tout fonctionne au poil, mais le tout est servi avec une
procédure très claire,
accessible aux néophytes du codage. Il suffit de maîtriser le "copier coller".
Merci encore pour ton aide.

Cdt
Georges


"RideHicul" a écrit :

Précision (pour cause de saleté de retour à la ligne automatique) !

Les lignes 3 et 4 n'en forme qu'une !
Donc, supprime le retour à la ligne après "CurrentProject.connection, "

La ligne suivante doit être complète et en une seule ligne (nouvelle
tentative) :
-----
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic
-----

RideHickul





Avatar
Goupil
Bonjour RideHicul,

Je cherche à résoudre exactement le même problème que Georges, mais par
contre, je bloque sur la première ligne:
Set rst = New ADODB.Recordset
J'ai un message: "Type défini par l'utilisateur non défini"
Bizarre, je ne comprends pas.

C'est peut-être plus évident pour toi ?


Goup'

"RideHicul" a écrit dans le message de news:

Salut Georges,

Ben ... à part passer par un bout de code je vois pas ...

Ma solution avec un poil de code :

Ce qu'il te faut :
-----------------
1) Une table "T01Nom"
Dans cette table, au minimum un champ "NOM"
Dans ce champ, tes données (Vincent, François, ...)

2) Un formulaire (nom quelconque)
Dans ce formulaire :
- Un bouton de commande "Command0"
- Une zone de texte "Texte1"

Le code :
-------------
Je sais pas si tu as l'habitude de coder ...
Comme tu parle de "cellule", je pense qu'il est préférable que je détaille
un peu ;-)

Donc :
1) Commence par copier les lignes ci-dessous (de "Set rst ..." à
"rst.close")

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic

compil = ""
rst.MoveFirst

Do While Not (rst.EOF)
compil = compil & rst!Nom & ", "
rst.MoveNext
Loop
Texte1 = compil

rst.Close


2) Dans Access, sur le bouton de commande, tu fais un clic droit et tu
choisi "Créer code evenement"
L'éditeur Visual Basic s'ouvre avec les 2 ligne suivantes (le curseur
clignotant est entre les 2) :


Private Sub Commande0_Click()

End Sub


3) Colle à cet endroit
4) Fait "Fichier - Fermer et retourner à Microsoft Access"
5) Enregistre et teste.

Voili, il y a sans doute plus propre mais c'est déjà un début...


RideHickul

"Georges" a écrit dans le message de
news:
Bonsoir Roger,

Tu as raison il faut que je sois plus clair dans mes explications.
J'ai une table T01Nom qui contient un nombre d'enregistrements variable
du type "Vincent","François", "Paul", "et les autres".
Je souhaite avoir dans un formulaire une cellule qui a pour résultat la
concaténation de tous les enregistrements de cette table.
Dans cet exemple , il me faudrait donc une cellule du type
"Vincent,François, Paul, et les autres".
Merci encore pour ton aide.
Cdt
Georges


"Le meruvien" a écrit :







Avatar
RideHicul
Salut Goupil,

Quand tu es dans l'éditeur, va dans Outils - Références.
Dans la liste, coche "Microsoft ActiveX Data Objects x.yy library.

Je pense que tout devrait rentrer dans l'ordre..

Bonne soirée


"Goupil" a écrit dans le message de news:
4acf4110$0$995$
Bonjour RideHicul,

Je cherche à résoudre exactement le même problème que Georges, mais par
contre, je bloque sur la première ligne:
Set rst = New ADODB.Recordset
J'ai un message: "Type défini par l'utilisateur non défini"
Bizarre, je ne comprends pas.

C'est peut-être plus évident pour toi ?


Goup'

"RideHicul" a écrit dans le message de news:

Salut Georges,

Ben ... à part passer par un bout de code je vois pas ...

Ma solution avec un poil de code :

Ce qu'il te faut :
-----------------
1) Une table "T01Nom"
Dans cette table, au minimum un champ "NOM"
Dans ce champ, tes données (Vincent, François, ...)

2) Un formulaire (nom quelconque)
Dans ce formulaire :
- Un bouton de commande "Command0"
- Une zone de texte "Texte1"

Le code :
-------------
Je sais pas si tu as l'habitude de coder ...
Comme tu parle de "cellule", je pense qu'il est préférable que je
détaille un peu ;-)

Donc :
1) Commence par copier les lignes ci-dessous (de "Set rst ..." à
"rst.close")

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic

compil = ""
rst.MoveFirst

Do While Not (rst.EOF)
compil = compil & rst!Nom & ", "
rst.MoveNext
Loop
Texte1 = compil

rst.Close


2) Dans Access, sur le bouton de commande, tu fais un clic droit et tu
choisi "Créer code evenement"
L'éditeur Visual Basic s'ouvre avec les 2 ligne suivantes (le curseur
clignotant est entre les 2) :


Private Sub Commande0_Click()

End Sub


3) Colle à cet endroit
4) Fait "Fichier - Fermer et retourner à Microsoft Access"
5) Enregistre et teste.

Voili, il y a sans doute plus propre mais c'est déjà un début...


RideHickul

"Georges" a écrit dans le message de
news:
Bonsoir Roger,

Tu as raison il faut que je sois plus clair dans mes explications.
J'ai une table T01Nom qui contient un nombre d'enregistrements variable
du type "Vincent","François", "Paul", "et les autres".
Je souhaite avoir dans un formulaire une cellule qui a pour résultat la
concaténation de tous les enregistrements de cette table.
Dans cet exemple , il me faudrait donc une cellule du type
"Vincent,François, Paul, et les autres".
Merci encore pour ton aide.
Cdt
Georges


"Le meruvien" a écrit :











Avatar
Goupil
Mieux vaut un qui sait que dix qui cherchent !
Evidemment, ca marche !

Merci Monsieur Hicul ;-)

Goup'

"RideHicul" a écrit dans le message de news:

Salut Goupil,

Quand tu es dans l'éditeur, va dans Outils - Références.
Dans la liste, coche "Microsoft ActiveX Data Objects x.yy library.

Je pense que tout devrait rentrer dans l'ordre..

Bonne soirée


"Goupil" a écrit dans le message de news:
4acf4110$0$995$
Bonjour RideHicul,

Je cherche à résoudre exactement le même problème que Georges, mais par
contre, je bloque sur la première ligne:
Set rst = New ADODB.Recordset
J'ai un message: "Type défini par l'utilisateur non défini"
Bizarre, je ne comprends pas.

C'est peut-être plus évident pour toi ?


Goup'

"RideHicul" a écrit dans le message de news:

Salut Georges,

Ben ... à part passer par un bout de code je vois pas ...

Ma solution avec un poil de code :

Ce qu'il te faut :
-----------------
1) Une table "T01Nom"
Dans cette table, au minimum un champ "NOM"
Dans ce champ, tes données (Vincent, François, ...)

2) Un formulaire (nom quelconque)
Dans ce formulaire :
- Un bouton de commande "Command0"
- Une zone de texte "Texte1"

Le code :
-------------
Je sais pas si tu as l'habitude de coder ...
Comme tu parle de "cellule", je pense qu'il est préférable que je
détaille un peu ;-)

Donc :
1) Commence par copier les lignes ci-dessous (de "Set rst ..." à
"rst.close")

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "Select Nom From T01Nom", CurrentProject.connection,
adOpenKeyset, adLockOptimistic

compil = ""
rst.MoveFirst

Do While Not (rst.EOF)
compil = compil & rst!Nom & ", "
rst.MoveNext
Loop
Texte1 = compil

rst.Close


2) Dans Access, sur le bouton de commande, tu fais un clic droit et tu
choisi "Créer code evenement"
L'éditeur Visual Basic s'ouvre avec les 2 ligne suivantes (le curseur
clignotant est entre les 2) :


Private Sub Commande0_Click()

End Sub


3) Colle à cet endroit
4) Fait "Fichier - Fermer et retourner à Microsoft Access"
5) Enregistre et teste.

Voili, il y a sans doute plus propre mais c'est déjà un début...


RideHickul

"Georges" a écrit dans le message de
news:
Bonsoir Roger,

Tu as raison il faut que je sois plus clair dans mes explications.
J'ai une table T01Nom qui contient un nombre d'enregistrements variable
du type "Vincent","François", "Paul", "et les autres".
Je souhaite avoir dans un formulaire une cellule qui a pour résultat la
concaténation de tous les enregistrements de cette table.
Dans cet exemple , il me faudrait donc une cellule du type
"Vincent,François, Paul, et les autres".
Merci encore pour ton aide.
Cdt
Georges


"Le meruvien" a écrit :