Ajouter champ ds une table venant autre table

Fermé
Boris06 - 26 mai 2011 à 17:50
 Jean_Jacques - 27 mai 2011 à 23:02
Bonjour,
Je travail sur Access 2010. J'ai tout d'abord une table (qu'on nommera 'table1') concernant des patients dans laquelle se trouvent beaucoup d'info (30aines de champs) ac notamment Nom, Prenom, dateIntervemtion et un numeros MHN.

Je viens de recevoir une autre table, 'table2', qui contient un grand nombre de patients en commun a la table1 mais ac de nouvelles infos (200champs environ).

Il m'est demande, d'ajouter un nveau champ a la table2 qui est en fait le num MHN fournit par la table1, ou chaque num MHN doit correspondre au bon patient de la tables 2.

J'ai ainsi pense a faire des jointures, les infos en commun des 2 tables sont Nom, Prenom et dateIntervention.
J'ai teste une jointure entre les champs Nom des deux tables. Mais helas la jointure est impossible car dans la table2, Nom et prenom sont melange dans un meme champ de cette facon: DUPONT^JEAN
alors que ds la table1 il y a 2 champs separes: ds un champ:'Jean' puis 'Dupont' dans l'autre champ.

J'ai cherche des requete SQL pour extraire juste le 'DUPONT' de 'DUPONT^JEAN' pour ensuite retenter ma jointure, mais je n'ai tjs pas trouve de requete SQL compatible ac Access pour faire cela. Peut-etre dois-je utiliser le language de programmation 'VBA' present dans access pour traiter ce genre de cas?

Je vous remercie par avance, si qq peut m'aider




A voir également:

5 réponses

D'abord je tienais a vous remercier pr les reponses.
Sinon mon gros pb est que ces 2 tables ont ete crees independament. Du coup tres peu d'infos en commun sauf nom, prenom et date d'intervention.
Helas pour moi, elles st tres anarchiques, les champs sont plein de caracters inutiles, et il n'y a pas le mm nbre d'enregistrements.
Du coup je dois nettoyer les champs avant de pouvoir faire des jointures. Il faut que j'extrait des chaines de caracter pour les mettre ds d'autres champ 'au propore' faire des conversion entre date ecrites genre 1er janvier en 01/01 etc...

Helas je n'ai pas l'habitude de Access, les requete SQL qui pourraient marcher sont incompatibles ac le moteur access. Alors j'ai entendu dire qu'on pouvait faire ce genre de chose via VBA, mais je n'ai aucune idees de comment appliquer du langageVBA a des champs existant...
1
Jean_Jacques
27 mai 2011 à 20:37
Bonsoir Boris06,

En effet, c'est coton ....
A titre expérimental, je suggère une manip qui consiste à créer un champ virtuel via une requête.
Le but est de créer artificiellement un champ qui réunit le nom et le prénom connu dans la table fiable dans un champ virtuel nommé ici : Nom_prénom

En utilisant la requête comme une table vous pouvez alors créer un lien vers la table "pittoresque" ou un seul champ abrite déjà simultanément nom et prénom ...

Voilà comment je vois la requête à tester :
SELECT Table.nom, Table.prénom, Table.nom, [Nom] & " " & [prénom] AS Nom_prénom
FROM Table
ORDER BY Table.nom;

Ça me parait plausible, encore faut-il le vérifier.

Cordialement
***
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
1
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
27 mai 2011 à 01:44
Bonjour
En SQL cela se fait car un collegue m'avait fourni le code que j'ai perdu.
Par contre si le nombre d'enregistrements est identique et que dans la table 2 tu le nom en premier , tu lances une requete de classement en ordre croisant sur les tables et tu compares.
Eventuellement tu peux essayer aprés avoir fait le classement de recreer les tables pour les avoir dans l'ordre, de créer un champ N° auto et Champ numerique dans les tables pour essayer de faire une relation un a plusieurs.
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
27 mai 2011 à 14:27
Bonjour Boris06,

N'y aurait-il pas une autre information commune aux deux tables, du genre n° de Mutuelle ?
Dans ce cas, ce serait du gâteau.... pour une requête de mise à jour.



Cordialement
***
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour Jean Jacques,
Je viens d'essayer votre idee et cela semble efficace. Je vous en remercie!
Grace a cela j'ai pu traiter la moitie de mes donnees, reste a traiter des cas comme les prenoms composes et supprimer des caracters speciaux qui se sont glisses pendant certains enregistrements de ces donnes reduisant l'efficacite de la jointure, mais c'est un vrai pas en avant.

De plus apparamement une jointure seulement sur nom et prenom ne suffise pas pour avoir des correspondance fiable a 100%. Je devais devoir faire une jointure sur les dates d'intervention communes entre les 2 tables, helas je vais devoir convertir des dates du genre 1er janvier en 01/01 pour y parvenir.

En tt cas encore merci pour votre aide.
0
Jean_Jacques
27 mai 2011 à 23:02
Merci pour le retour d'information.
Bon courage
AJJ
0