Doublons sur deux critères

Le
gauso
Bonjour,
soit une table "d'indexation, enregistrant des inscriptions de
personnes à différents "mailings"
Mon but : vérifier qu'une même personne n'est pas inscrite plusieurs
fois au même mailing
En gros donc, une recherche de doublons mais un peu compliquée
quand même pour ma petite tête
Donc, on a :
- TablePersonnes
- TablePersonMailing
- TableMailings

Je ne sais par quel bout prendre le problème Pourriez-vous me
mettre sur la piste ?
Comment dire : pour une personne donnée, vérifier qu'il n'y a pas
plusieurs fois la même refMailing dans TablePersonMailing ???
Par avance, merci de votre aide,
Sonia.
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
Richard_35
Le #6273461
Bonjour Gauso,

Donc :
TablePersonnes : clé unique IdPers
TableMailings : clé unique IdMail
TablePersonMailing : clé, théoriquement, unique composée IdPers/IdMail (clé
unique non créée comme telle puisque tu veux vérifier son unicité !)

Les doublons seront repérés comme suit :
SELECT IdPers, IdMail, count(*)
FROM TablePersonMailing
GROUP BY IdPers, IdMail
HAVING count(*)<>1

En français, cela veut dire (en parlant à la machine !) :
Groupes le fichier "Personne/Mailing" par "Personne/Mailing" et extraies-moi
les "Personne/Mailing" présents plus d'une fois, en me donnant leur nombre.

Note :
Si la clé IdPers/IdMail de la table TablePersonMailing avait été définie
comme unique, les doublons n'auraient pas été possibles.

Bon courage,
Richard.


"gauso"
Bonjour,
... soit une table "d'indexation, enregistrant des inscriptions de
personnes à différents "mailings"...
Mon but : vérifier qu'une même personne n'est pas inscrite plusieurs
fois au même mailing...
En gros donc, une recherche de doublons... mais un peu compliquée
quand même pour ma petite tête...
Donc, on a :
- TablePersonnes
- TablePersonMailing
- TableMailings

Je ne sais par quel bout prendre le problème... Pourriez-vous me
mettre sur la piste ?
Comment dire : pour une personne donnée, vérifier qu'il n'y a pas
plusieurs fois la même refMailing dans TablePersonMailing ???
Par avance, merci de votre aide,
Sonia.
gauso
Le #6273411
Bonsoir Richard,

... super ça marche !! la preuve, voici le grandiose résultat (eh oui,
il y en avait !... pas tant que ça mais...) :

RefInstPersMail RefMailing Nbr
RefInstit RefPers
9429 Colonnes 2 Ecole
d'architecture de Versailles DRUEL
10577 Gaudi 2 Abbeville
Press NITTERAUER
11906 Gaudi 2
PARTICULIER LAGARD
11949 Colonnes 2 Bibliothèque
nationale de France (BNF)


Je ne m'en serais jamais sortie toute seule...
Donc, très bonne soirée et merci encore :o)
Sonia.
Richard_35
Le #6273391
Bonsoir Sonia (joli bout du nez rond :o)...),

Merci pour le retour.
Mais, comme je te l'ai dit, il vaut mieux intervenir avant la création
des clés en double, sinon tu es obligée de lancer régulièrement ta requête
de contrôle après un certain nombre de saisies...

Bye,
Richard.


"gauso"
Bonsoir Richard,

... super ça marche !! la preuve, voici le grandiose résultat (eh oui,
il y en avait !... pas tant que ça mais...) :

RefInstPersMail RefMailing Nbr
RefInstit RefPers
9429 Colonnes 2 Ecole
d'architecture de Versailles DRUEL
10577 Gaudi 2 Abbeville
Press NITTERAUER
11906 Gaudi 2
PARTICULIER LAGARD
11949 Colonnes 2 Bibliothèque
nationale de France (BNF)


Je ne m'en serais jamais sortie toute seule...
Donc, très bonne soirée et merci encore :o)
Sonia.
gauso
Le #6273291
Bonjour Richard,

Ce que tu dis m'intéresse bien... et comment procèdes-tu pour créer
cette sécurité en amont ?
Tu veux dire à la saisie ou bien ?
Pardon pour cette re-sollicitation ;o)
Sonia.


Merci pour le retour.
Mais, comme je te l'ai dit, il vaut mieux intervenir avant la créat ion
des clés en double, sinon tu es obligée de lancer régulièrement t a requête
de contrôle après un certain nombre de saisies...

Bye,
Richard.

"gauso"
Bonsoir Richard,

... super ça marche !! la preuve, voici le grandiose résultat (eh oui,
il y en avait !... pas tant que ça mais...) :

RefInstPersMail RefMailing Nbr
RefInstit RefPers
9429 Colonnes 2 Ecole
d'architecture de Versailles DRUEL
10577 Gaudi 2 Abbeville
Press NITTERAUER
11906 Gaudi 2
PARTICULIER LAGARD
11949 Colonnes 2 Bibliothèque
nationale de France (BNF)

Je ne m'en serais jamais sortie toute seule...
Donc, très bonne soirée et merci encore :o)
Sonia.


gauso
Le #6272501
Re-bonjour Richard,
Je ne sais si tu auras ce message... (le système de ce groupe a changé
semble-t'il ? Avant quand on répondait à un message, il me semble
qu'il se remettait en début de liste... ce qui rendait les réponses
explicites pour les participants...)
Juste pour te dire que je viens de comprendre ce que tu suggérais :
mettre la clé sur les deux champs (jusqu'alors je n'avais pas compris
qu'il était possible de le faire : cela m'ouvre des horizons ;o)... Je
comprends vite mais il faut m'expliquer... un certain temps !
Donc, encore merci :o)
Sonia.
3stone
Le #6272311
Salut,

"gauso"
Je ne sais si tu auras ce message... (le système de ce groupe a changé
semble-t'il ? Avant quand on répondait à un message, il me semble
qu'il se remettait en début de liste... ce qui rendait les réponses
explicites pour les participants...)
[...]


Ici, rien n'a changé...
- Il n'y à pas de début ou de fin de liste !!!
- Pas de dessus ni de dessous !!!
- Les discussions créent un fil - à condition de répondre dans ce fil !

Ceci, pour autant que tu utilise un lecteur de news (vu que c'est un newsgroup ;-)
et pas une de ces "interfaces Web de mer**" (c) Jièl :-)

Tu devrais lire ceci, pour une meilleure compréhension :
http://www.mpfa.info/articles.php?lng=fr&pg=5

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Richard_35
Le #6271321
Bonjour Sonia-bout-du-nez-rond :o)),

Désolé pour le retard...
C'est donc exactement ce qu'il fallait faire (pour la clé
multi-champs...).
Si je peux me permettre un autre conseil : utilises bien les relations
entre les tables (1 pour N, 1 pour 1) ; cela sécurise ta base de données et
ACCESS te "pré-mache" le travail, dans certain cas (formulaires,
sous-formulaire, états, etc...).
Avec des clés primaires et des relations de tables correctement
définies, tu auras une base de données (ensemble des tables) cohérente.
Il faut savoir que, plus il y a "d'erreurs" d'analyse, et plus ton code
sera encombré inutilement de tests superflus.
Avant "d'attaquer" les formulaires, les états, les requêtes et le code,
il faut donc avoir une base de données "béton" ; si c'est le cas, tout le
reste "coule" tout seul.

Bye Sonia,
Richard.

"gauso"
Re-bonjour Richard,
Je ne sais si tu auras ce message... (le système de ce groupe a changé
semble-t'il ? Avant quand on répondait à un message, il me semble
qu'il se remettait en début de liste... ce qui rendait les réponses
explicites pour les participants...)
Juste pour te dire que je viens de comprendre ce que tu suggérais :
mettre la clé sur les deux champs (jusqu'alors je n'avais pas compris
qu'il était possible de le faire : cela m'ouvre des horizons ;o)... Je
comprends vite mais il faut m'expliquer... un certain temps !
Donc, encore merci :o)
Sonia.
gauso
Le #6271301
Bonjour Richard,

OK, merci pour les bons conseils Richard... normalement je ne suis
plus tout à fait une novice (je développe cette base depuis bientôt
dix ans ;o)
... sauf que je n'ai aucune formation préalable : j'ai pris le manuel
à la page 1 et petit à petit... avec l'aide des nombreux "bienfaiteurs
de l'humanité" de ce forum...
Donc mes propres "bases" sont parfois un peu incertaines... les grands
principes sont OK, le reste beaucoup moins maitrisé (comprends quand
j'ai le temps de comprendre...) : la "grammaire" SQL, VB, notamment,
jamais vraiment intégrée (beaucoup de "copié/collé": la vilaine
feignante...). Faut dire, qu'évidemment, le développement n'est pas ma
principale activitée...
Mais je pense que dans l'ensemble ma base est "propre" (il y a
longtemps je l'avais fait "expertiser" par certains des bienfaiteurs
en question (notamment : Daniel Carollo, Walter Stucki, pour ne pas
les citer)... qui m'avaient d'ailleurs complimenté (j'en ai encore les
joues qui rosissent ;o)
... sauf que ces compliments sont à retourner directement à un certain
Jacques Sanchez (pas très présent sur ce forum mais qui m'a beaucoup,
beaucoup aidé: si, par hasard, tu lis ce message Jacques, mon souvenir
toujours reconnaissant...)

Donc, l'éternelle novice que je suis, rends ici solennellement hommage
à toutes les "bonnes âmes" qui peuplent ce forum : cette compétence
offerte au tout venant est plus qu'appréciable et redonne presque
confiance en l'humanité ;o)
Bon, j'arrête le hors sujet...
Très bonne journée Richard :o)
(et au fait, merci à toi aussi 3Stone : je suivrais ton dernier
conseil)
Sonia.
Publicité
Poster une réponse
Anonyme