Concaténer des enregistrements

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le meruvien
Le #20249251
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" 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




Georges
Le #20254021
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" 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
>
>





RideHicul
Le #20255161
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" 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 :



RideHicul
Le #20255281
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
Georges
Le #20255981
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





Goupil
Le #20321731
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"
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" 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 :







RideHicul
Le #20324251
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" 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"
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" 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 :











Goupil
Le #20326071
Mieux vaut un qui sait que dix qui cherchent !
Evidemment, ca marche !

Merci Monsieur Hicul ;-)

Goup'

"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" 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"
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" 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 :















Publicité
Poster une réponse
Anonyme