cerhu > microsoft.* > microsoft.access

Jean-Luc H (11/10/2004, 21h04)
Bonjour,
Quelqu'un pourra-t-il m'aider ,
Pour mon association j'ai 2 tables liées par un champs CODE, j'ai mis en
place :
* un formulaire pour y entrer les adhérents et leurs années de
cotisations,
* un état pour imprimer des étiquettes
* une requête pour trier les adhérents ayant payé leur cotisation
l'année en cours et l'année précédante

Le problème est que ma requête prend en compte 2 fois les adhérents ( ceux
ayant payés les 2 années). Pour tirer les étiquettes, je souhaiterai que ma
requête ne conserve qu'une fois chaque adhérent.

Merci d'aider un débutant en base de données.
Sylvain Lafontaine (11/10/2004, 22h01)
Probablement en modifiant les paramètres de jointure ou en utilisant un
Group By. Vous devriez nous indiquer la requête que vous utilisez
présentement.

S. L.

"Jean-Luc H" <huet.jeanluc> wrote in message
news:b975
[..]
Jean-Luc H (12/10/2004, 15h17)
Bonjour,
Je pense que c'est ceci (ci-dessous) que vous souhaitez :
- - - - - - - - - - - -
SELECT [ADHERENTS01&02].[CODE MEMBRE] AS [ADHERENTS01&02_CODE MEMBRE],
[ADHERENTS01&02].TRI, [ADHERENTS01&02].[NOM PRENOM], [ADHERENTS01&02].TITRE,
[ADHERENTS01&02].ADRESSE, [ADHERENTS01&02].LOCALITE, [ADHERENTS01&02].[CODE
POSTAL], [ADHERENTS01&02].[TELEPHONE TRAV], [ADHERENTS01&02].[CATEGORIE
MEMBRE], [ADHERENTS01&02].[TELEPHONE PERSO], [ADHERENTS01&02].[E-Mail],
COTISATIONS.Numéro, COTISATIONS.[CODE MEMBRE] AS [COTISATIONS_CODE MEMBRE],
COTISATIONS.[ANNEE COTISATION], COTISATIONS.[N° CARTE]
FROM [ADHERENTS01&02] INNER JOIN COTISATIONS ON [ADHERENTS01&02].[CODE
MEMBRE] = COTISATIONS.[CODE MEMBRE]
WHERE (((COTISATIONS.[ANNEE COTISATION])="2001" Or (COTISATIONS.[ANNEE
COTISATION])="2003"));
- - - - - - - - - - - - - -

Merci.
Sylvain Lafontaine (12/10/2004, 18h36)
1- Vous devriez utiliser autre chose que &, espaces blancs et autres
caractères spéciaux dans vos nom de tables afin d'éviter l'utilisation des
crochets.

2- L'idée que tout mettre en majuscules est plus facile à lire date des
années 70, où les écrans étaient incroyablement difficiles à lire ou, pire
encore, fonctionnaient tout simplement sur 6 bits seulement.

3- Utilisez également un Alias pour vos noms de table.

4- Inutile de répéter tous les champs ici.

5- Finalement, vous avez besoin de l'utilisation de la fonction Exists() ou
d'un Group By associé à l'utilisation de First(), pour Access seulement, ou
d'une sous-requête, pour Access ou SQL-Server.

Si on prend la fonction Exists, on arrive à quelque chose du genre:

Select A0102.[CODE MEMBRE] AS [ADHERENTS01&02_CODE MEMBRE],
A0102.TRI, A0102.[NOM PRENOM], A0102.TITRE,
A0102.ADRESSE, A0102.LOCALITE, A0102.[CODE
POSTAL], A0102.[TELEPHONE TRAV], A0102.[CATEGORIE
MEMBRE], A0102.[TELEPHONE PERSO], A0102.[E-Mail],
COTISATIONS.Numéro, COTISATIONS.[CODE MEMBRE] AS [COTISATIONS_CODE MEMBRE],
COTISATIONS.[ANNEE COTISATION], COTISATIONS.[N° CARTE]
From [ADHERENTS01&02] A0102

Where Exists (select * from Cotisations C where C.[CODE MEMBRE] =
A0102.[CODE MEMBRE]
And (C.[ANNEE COTISATION]="2001" Or C.[ANNEE COTISATION]="2003"))

Pour l'utilisation du Group By, jetez un coup d'oeil dans l'aide en ligne.
L'exemple ci-dessus est pour SQL-Server, mais j'imagine qu'il doit
fonctionner tel quel sous Access.

S. L.

"Jean-Luc H" <huet.jeanluc> wrote in message
news:b975
[..]
Discussions similaires
requete doublon

requète sans doublon

requete ajout sans doublon

SQL pour requête union sans doublon


Fuseau horaire GMT +2. Il est actuellement 18h52. | Privacy Policy