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

Récupération d'un nom de champ dans une requête.

5 réponses
Avatar
Richard_35
Bonjour,

Est-il possible de récupérer le nom d'un champ d'une table dans une requête ?
Je ne parle pas de la valeur du champ, mais bien de son nom.

Un truc du style :
Table CLIENT :
-Id_CLIENT
-Nom_CLIENT

1 Client A
2 Client B
3 Client C

Requête :
SELECT NomDuChamp(Id_CLIENT), Id_CLIENT
FROM CLIENT

Résultat souhaité :
"Id_CLIENT" 1
"Id_CLIENT" 2
"Id_CLIENT" 3

Donc, en fait, l'équivalent Access de la fonction NomDuChamp().

Merci de votre aide.
Richard.

5 réponses

Avatar
3stone
Salut,

Richard_35 wrote:
Est-il possible de récupérer le nom d'un champ d'une table dans une
requête ? Je ne parle pas de la valeur du champ, mais bien de son nom.



Pour une requête standard, on connait d'avance le nom des champs
que l'on souhaites intérroger...
Si tel n'est pas le cas, il faut passer par la collection "Fields".

Et, à moins que tu expliques d'où vient cette nécessité...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Richard_35
Bonjour Pierre,

Merci de ta réponse... qui m'a fait sentir que ma demande et mon exemple
sont très mal formulés...

Je explique, donc, d'où vient cette nécessité :
Je souhaite exploiter des requêtes analyse croisée dont l'entête des
colonnes (le nom des champs de la requête) dépend de la valeur des champs
analysés. Je souhaite faire, par exemple, des concaténations entre l'entête
de colonne (la valeur du champ initial, donc) et la valeur indiquée au
"croisement" ligne/colonne.

Je ne sais pas si j'ai été un peu plus clair.
Merci d'avance de ton aide,
Richard.


"3stone" a écrit :

Salut,

Richard_35 wrote:
> Est-il possible de récupérer le nom d'un champ d'une table dans une
> requête ? Je ne parle pas de la valeur du champ, mais bien de son nom.

Pour une requête standard, on connait d'avance le nom des champs
que l'on souhaites intérroger...
Si tel n'est pas le cas, il faut passer par la collection "Fields".

Et, à moins que tu expliques d'où vient cette nécessité...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
Richard_35
Bonjour Pierre,

Voir l'exemple ci-dessous :

Donc, par exemple, soit la la table CA_Client dont les champs sont :
- Id_client
- Année
- CA

Dont le contenu est :
1 - 2007 - 1000,00
1 - 2008 - 1500,00
2 - 2006 - 500,00
2 - 2007 - 800,00
2 - 2009 - 900,00
3 - 2007 - 5000,00

Via une requête "analyse croisée", pour avoir une ligne par client et les
années en colonne, j'obtiens :
1 - 0 - 1000,00 - 1500,00 - 0
2 - 500,00 - 800,00 - 0 - 900,00
3 - 0 - 5000,00 - 0 - 0
==> les noms des champs de la requête analyse croisée sont donc les suivants :
- Id_client
- 2006
- 2007
- 2008
- 2009

Si je crée une requête sélection sur cette requête analyse croisée, je vois
donc le nom des champs que j'ai indiqué. Je souhaiterais obtenir, par cette
requête sélection, le résultat suivant :
1 - 2006/0 - 2007/1000,00 - 2008/1500 - 2009/0
2 - 2006/500,00 - 2007/800,00 - 2008/0 - 2009/900,00
3 - 2006/0 - 2007/5000 - 2008/0 - 2009/0

Pour cela, dans cette requête sélection, je dois resaisir le nom de champ
concaténé à "/", concaténé au CA, donc, par exemple :
"2006" & "/" & CA
Je souaiterais remplacer la saisie de "2006" par une fonction NomDeChamp()
que je pourrais recopier (pratique pour les requêtes analyse croisée
complexes).

J'espère avoir été plus clair.
Merci de ton aide,

Richard.

"3stone" a écrit :

Salut,

Richard_35 wrote:
> Est-il possible de récupérer le nom d'un champ d'une table dans une
> requête ? Je ne parle pas de la valeur du champ, mais bien de son nom.

Pour une requête standard, on connait d'avance le nom des champs
que l'on souhaites intérroger...
Si tel n'est pas le cas, il faut passer par la collection "Fields".

Et, à moins que tu expliques d'où vient cette nécessité...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
3stone
Salut,

Je ne vois pas comment "lire" cela au niveau de la requête...

Mais, peut-être en utilsant des alias sur la première requête,
ce qui "fixerait" le nom des champs.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Richard_35 wrote:
Bonjour Pierre,

Voir l'exemple ci-dessous :

Donc, par exemple, soit la la table CA_Client dont les champs sont :
- Id_client
- Année
- CA

Dont le contenu est :
1 - 2007 - 1000,00
1 - 2008 - 1500,00
2 - 2006 - 500,00
2 - 2007 - 800,00
2 - 2009 - 900,00
3 - 2007 - 5000,00

Via une requête "analyse croisée", pour avoir une ligne par client et
les années en colonne, j'obtiens :
1 - 0 - 1000,00 - 1500,00 - 0
2 - 500,00 - 800,00 - 0 - 900,00
3 - 0 - 5000,00 - 0 - 0
==> les noms des champs de la requête analyse croisée sont donc les
suivants :
- Id_client
- 2006
- 2007
- 2008
- 2009

Si je crée une requête sélection sur cette requête analyse croisée,
je vois donc le nom des champs que j'ai indiqué. Je souhaiterais
obtenir, par cette requête sélection, le résultat suivant :
1 - 2006/0 - 2007/1000,00 - 2008/1500 - 2009/0
2 - 2006/500,00 - 2007/800,00 - 2008/0 - 2009/900,00
3 - 2006/0 - 2007/5000 - 2008/0 - 2009/0

Pour cela, dans cette requête sélection, je dois resaisir le nom de
champ concaténé à "/", concaténé au CA, donc, par exemple :
"2006" & "/" & CA
Je souaiterais remplacer la saisie de "2006" par une fonction
NomDeChamp() que je pourrais recopier (pratique pour les requêtes
analyse croisée complexes).

J'espère avoir été plus clair.
Merci de ton aide,

Richard.

"3stone" a écrit :

Salut,

Richard_35 wrote:
Est-il possible de récupérer le nom d'un champ d'une table dans une
requête ? Je ne parle pas de la valeur du champ, mais bien de son
nom.



Pour une requête standard, on connait d'avance le nom des champs
que l'on souhaites intérroger...
Si tel n'est pas le cas, il faut passer par la collection "Fields".

Et, à moins que tu expliques d'où vient cette nécessité...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
Richard_35
Bonjour Pierre,

J'ai pu m'en sortir (avec l'idée d'un autre) : dans la requête analyse
croisée, j'ai mis [Année] & / & somme([CA]) dans la partie "Valeur".

Merci encore de ton aide,
Richard.

"3stone" a écrit :

Salut,

Je ne vois pas comment "lire" cela au niveau de la requête...

Mais, peut-être en utilsant des alias sur la première requête,
ce qui "fixerait" le nom des champs.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Richard_35 wrote:
> Bonjour Pierre,
>
> Voir l'exemple ci-dessous :
>
> Donc, par exemple, soit la la table CA_Client dont les champs sont :
> - Id_client
> - Année
> - CA
>
> Dont le contenu est :
> 1 - 2007 - 1000,00
> 1 - 2008 - 1500,00
> 2 - 2006 - 500,00
> 2 - 2007 - 800,00
> 2 - 2009 - 900,00
> 3 - 2007 - 5000,00
>
> Via une requête "analyse croisée", pour avoir une ligne par client et
> les années en colonne, j'obtiens :
> 1 - 0 - 1000,00 - 1500,00 - 0
> 2 - 500,00 - 800,00 - 0 - 900,00
> 3 - 0 - 5000,00 - 0 - 0
> ==> les noms des champs de la requête analyse croisée sont donc les
> suivants :
> - Id_client
> - 2006
> - 2007
> - 2008
> - 2009
>
> Si je crée une requête sélection sur cette requête analyse croisée,
> je vois donc le nom des champs que j'ai indiqué. Je souhaiterais
> obtenir, par cette requête sélection, le résultat suivant :
> 1 - 2006/0 - 2007/1000,00 - 2008/1500 - 2009/0
> 2 - 2006/500,00 - 2007/800,00 - 2008/0 - 2009/900,00
> 3 - 2006/0 - 2007/5000 - 2008/0 - 2009/0
>
> Pour cela, dans cette requête sélection, je dois resaisir le nom de
> champ concaténé à "/", concaténé au CA, donc, par exemple :
> "2006" & "/" & CA
> Je souaiterais remplacer la saisie de "2006" par une fonction
> NomDeChamp() que je pourrais recopier (pratique pour les requêtes
> analyse croisée complexes).
>
> J'espère avoir été plus clair.
> Merci de ton aide,
>
> Richard.
>
> "3stone" a écrit :
>
>> Salut,
>>
>> Richard_35 wrote:
>>> Est-il possible de récupérer le nom d'un champ d'une table dans une
>>> requête ? Je ne parle pas de la valeur du champ, mais bien de son
>>> nom.
>>
>> Pour une requête standard, on connait d'avance le nom des champs
>> que l'on souhaites intérroger...
>> Si tel n'est pas le cas, il faut passer par la collection "Fields".
>>
>> Et, à moins que tu expliques d'où vient cette nécessité...
>>
>> --
>> A+
>> Pierre (3stone) Access MVP
>> Perso: http://www.3stone.be/
>> MPFA: http://www.mpfa.info/ (infos générales)