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

SELECT DISTINCT et ORDER BY dans une zone déroulante à 3 colonne s

2 réponses
Avatar
kolele
Sur la version Access 2000 et sur Access 2003
Soit une table "répertoire", avec un champ compteur, nom, adresse, et une
clé externe "CléCodePostal".
Ce dernier champ est relié à la clé primaire de la table "Codes postaux",
qui constitue le coté 1 de la relation, avec intégrité référentielle. Dans la
table "Codes postaux", outre le champ clé primaire "Clé code postal" (format
numéroAuto), il y a les champs "NomCommune", "CodePostal" et une clé externe
"Clé département".
"Clé département" constitue aussi le champ clé primaire d'une troisième
table "Départements", qui comporte aussi le champ "Nomdépartement".

Tout ça pour quoi : pour faire une requête sélection [RequêteRépertoire],
qui reprend tout ça et avoir, dans un formulaire, une zone de liste
déroulante comportant 3 colonnes : une colonne cachée pour le champ "
CléCodePostal " de la table résidence, une 2ème colonne visible pour
"NomCommune", et une troisième pour "NomDépartement".
Ainsi, l'utilisateur peut sélectionner un nom de la commune dans la liste,
en pouvant vérifier le département. Et le code postal sort sur une zone de
texte automatiquement.

Mon problème : dans la propriété Données, Contenu, le tri de cette zone de
liste déroulante n'est pas compatible avec SELECT DISTINCT.
- soit j'arrive à avoir une zone déroulante, avec l'assistant, qui pond le
code SQL suivant :
SELECT distinct [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire];
Je rajoute "distinct" ensuite à la main. Mais je n'ai pas le tri qui
m'intéresse (Access trie par département puis par ordre alphabétique ville,
alors que moi je veux seulement l'ordre alphabétique ville)

- soit l'assistant m'inclut le bon tri, mais alors impossibilité de rajouter
"distinct" après "select" dans la propriété données-contenu : si je le fais,
en mode formulaire, les données disparaissent dans la zone déroulante. Le
code SQL est alors le suivant :
SELECT [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire] ORDER BY [Nom champ];

Merci de votre aide

2 réponses

Avatar
ze Titi
Bonjour kolele

As-tu essayé le regroupement par Clécodepostal ?

SELECT Clécodepostal,NomCommune,Département
FROM [Requêterépertoire]
GROUPE BY Clécodepostal, NomCommune,Département
ORDER BY NomCommune

Ca donne quoi ?

Dans ton message
Sur la version Access 2000 et sur Access 2003
Soit une table "répertoire", avec un champ compteur, nom, adresse, et une
clé externe "CléCodePostal".
Ce dernier champ est relié à la clé primaire de la table "Codes postaux",
qui constitue le coté 1 de la relation, avec intégrité référentielle. Dans la
table "Codes postaux", outre le champ clé primaire "Clé code postal" (format
numéroAuto), il y a les champs "NomCommune", "CodePostal" et une clé externe
"Clé département".
"Clé département" constitue aussi le champ clé primaire d'une troisième
table "Départements", qui comporte aussi le champ "Nomdépartement".

Tout ça pour quoi : pour faire une requête sélection [RequêteRépertoire],
qui reprend tout ça et avoir, dans un formulaire, une zone de liste
déroulante comportant 3 colonnes : une colonne cachée pour le champ "
CléCodePostal " de la table résidence, une 2ème colonne visible pour
"NomCommune", et une troisième pour "NomDépartement".
Ainsi, l'utilisateur peut sélectionner un nom de la commune dans la liste,
en pouvant vérifier le département. Et le code postal sort sur une zone de
texte automatiquement.

Mon problème : dans la propriété Données, Contenu, le tri de cette zone de
liste déroulante n'est pas compatible avec SELECT DISTINCT.
- soit j'arrive à avoir une zone déroulante, avec l'assistant, qui pond le
code SQL suivant :
SELECT distinct [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire];
Je rajoute "distinct" ensuite à la main. Mais je n'ai pas le tri qui
m'intéresse (Access trie par département puis par ordre alphabétique ville,
alors que moi je veux seulement l'ordre alphabétique ville)

- soit l'assistant m'inclut le bon tri, mais alors impossibilité de rajouter
"distinct" après "select" dans la propriété données-contenu : si je le fais,
en mode formulaire, les données disparaissent dans la zone déroulante. Le
code SQL est alors le suivant :
SELECT [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire] ORDER BY [Nom champ];

Merci de votre aide


--
Voilou !
Cordialement,

Ze Titi

Avatar
loutox
Salut,
je n'ai pas bien tout lu, mais tu pourrais essayer
-de remplacer le distinct par un group by

-ou de remplacer (ce n'est pas une blague) le "select champs from source"
par un "select champs from source UNION select champs from source"
En effet le UNION induit un distinct .

loutox


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

Sur la version Access 2000 et sur Access 2003
Soit une table "répertoire", avec un champ compteur, nom, adresse, et une
clé externe "CléCodePostal".
Ce dernier champ est relié à la clé primaire de la table "Codes postaux",
qui constitue le coté 1 de la relation, avec intégrité référentielle. Dans
la
table "Codes postaux", outre le champ clé primaire "Clé code postal"
(format
numéroAuto), il y a les champs "NomCommune", "CodePostal" et une clé
externe
"Clé département".
"Clé département" constitue aussi le champ clé primaire d'une troisième
table "Départements", qui comporte aussi le champ "Nomdépartement".

Tout ça pour quoi : pour faire une requête sélection [RequêteRépertoire],
qui reprend tout ça et avoir, dans un formulaire, une zone de liste
déroulante comportant 3 colonnes : une colonne cachée pour le champ "
CléCodePostal " de la table résidence, une 2ème colonne visible pour
"NomCommune", et une troisième pour "NomDépartement".
Ainsi, l'utilisateur peut sélectionner un nom de la commune dans la liste,
en pouvant vérifier le département. Et le code postal sort sur une zone de
texte automatiquement.

Mon problème : dans la propriété Données, Contenu, le tri de cette zone de
liste déroulante n'est pas compatible avec SELECT DISTINCT.
- soit j'arrive à avoir une zone déroulante, avec l'assistant, qui pond le
code SQL suivant :
SELECT distinct [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire];
Je rajoute "distinct" ensuite à la main. Mais je n'ai pas le tri qui
m'intéresse (Access trie par département puis par ordre alphabétique
ville,
alors que moi je veux seulement l'ordre alphabétique ville)

- soit l'assistant m'inclut le bon tri, mais alors impossibilité de
rajouter
"distinct" après "select" dans la propriété données-contenu : si je le
fais,
en mode formulaire, les données disparaissent dans la zone déroulante. Le
code SQL est alors le suivant :
SELECT [RequêteRépertoire].[ClécodePostal],
[RequêteRépertoire].[NomCommune], [RequêteRépertoire].[Département] FROM
[RequêteRépertoire] ORDER BY [Nom champ];

Merci de votre aide