{Access} correspondance entre 2 tables champ non i
mathieubec
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
mathieubec -
mathieubec -
Bonjour,
Sur une base de données propriété industrielle, j'ai 2 tables dans lesquelles j'ai un champs entreprise (dans chacune des tables). Je souhaite rechercher les entreprises commune à ces 2 tables. Le problème est que, bien que les entreprises soient les mêmes (dans la réalité industrielle), leur nom dans ces 2 champs ne sont pas forcément exactement les mêmes (par exemple : total peut devenir Total SA....) ce qui me pose un grand problème sachant que j'ai plusieurs milliers d'entreprises et que je souhaiterais donc automatiser une correspondance en recherchant les caractères commun entre ces 2 champs qui me permettraient de penser que les entreprises sont bien les mêmes.
Par exemple : Total (dans mon champ entreprise de la 1ère table), une fonction du type "si tu trouves TOTAL dans la chaîne de caractère de mon champ entreprise de la 2ème Table) alors faire la correspondance comme si il s'agissait de la même chaîne.
Et j'aimerais faire cela pour toutes mes entreprises des deux tables sans que j'ai à lui préciser le nom à rechercher mais plutôt "si tu trouves 5 caractères consécutifs dans la premier table et dans la seconde sur le champ entreprise" par exemple.
Est ce clair ? j'en suis pas certain
merci pour tout
Sur une base de données propriété industrielle, j'ai 2 tables dans lesquelles j'ai un champs entreprise (dans chacune des tables). Je souhaite rechercher les entreprises commune à ces 2 tables. Le problème est que, bien que les entreprises soient les mêmes (dans la réalité industrielle), leur nom dans ces 2 champs ne sont pas forcément exactement les mêmes (par exemple : total peut devenir Total SA....) ce qui me pose un grand problème sachant que j'ai plusieurs milliers d'entreprises et que je souhaiterais donc automatiser une correspondance en recherchant les caractères commun entre ces 2 champs qui me permettraient de penser que les entreprises sont bien les mêmes.
Par exemple : Total (dans mon champ entreprise de la 1ère table), une fonction du type "si tu trouves TOTAL dans la chaîne de caractère de mon champ entreprise de la 2ème Table) alors faire la correspondance comme si il s'agissait de la même chaîne.
Et j'aimerais faire cela pour toutes mes entreprises des deux tables sans que j'ai à lui préciser le nom à rechercher mais plutôt "si tu trouves 5 caractères consécutifs dans la premier table et dans la seconde sur le champ entreprise" par exemple.
Est ce clair ? j'en suis pas certain
merci pour tout
A voir également:
- {Access} correspondance entre 2 tables champ non i
- Supercopier 2 - Télécharger - Gestion de fichiers
- 38 dictionnaires et recueils de correspondance - Télécharger - Dictionnaires & Langues
- Tables des matières word - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- 2 ecran pc - Guide
9 réponses
Idéalement lire une ligne de la table 1, extraire l'info pertinente et lire ensuite toutes les lignes de la table 2, pour voir si on trouve une correspondance.
Ce qui fait qu'au total on aura fait un produit cartésien : lignes de la table 1 x lignes de la table 2...
Le principal problème sera de trouver à quel moment on trouve une information pertinente dans la table 1.
Ce qui fait qu'au total on aura fait un produit cartésien : lignes de la table 1 x lignes de la table 2...
Le principal problème sera de trouver à quel moment on trouve une information pertinente dans la table 1.
je vois bien ce que vous voulez dire. Dans ce contexte, quelles seraient les fonctions ou programmation à prévoir pour réaliser cette opération.
merci pour votre aide
merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Parcours des tables avec un recordset et comparaison en VBA...
Extraction avec des fonctions de chaine : str, mid,...
Extraction avec des fonctions de chaine : str, mid,...
Pourrais tu être me donner un exemple pour que je puisse mieux comprendre (sur la base de Total , Total SA par exemple). Si je comprends bien il va falloir que je créé une macro en VBA.
Par contre tu parles d'extraction, mais je ne souhaite pas vraiment extraire une chaîne de caractère semblable aux 2 tables mais plutôt voir si une partie de la chaîne de la table 1 et identique à une partie de la chaîne de la table 2 pour les 2 champs étudiés (en l'occurrence entreprise).
Merci pour le temps accordé
Par contre tu parles d'extraction, mais je ne souhaite pas vraiment extraire une chaîne de caractère semblable aux 2 tables mais plutôt voir si une partie de la chaîne de la table 1 et identique à une partie de la chaîne de la table 2 pour les 2 champs étudiés (en l'occurrence entreprise).
Merci pour le temps accordé
Un peu de code qui recherche les 5 premiers caractères d'une chaine dans la totalité d'une autre présente dans une autre table.
Table1 contient le champ 'nom1', Table2 contient le champ 'Nom2' et on recherche si les 5 premiers caractères de Nom1 sont présents dans Nom2 (en les forçant en majuscules pour la comparaison).
Ca peut donner un début.
Table1 contient le champ 'nom1', Table2 contient le champ 'Nom2' et on recherche si les 5 premiers caractères de Nom1 sont présents dans Nom2 (en les forçant en majuscules pour la comparaison).
Private Sub Bout_Rech_Click() Dim Rs1 As DAO.Recordset Dim Rs2 As DAO.Recordset Dim Str1 As String Dim Trouve As Integer Set Rs1 = CurrentDb.OpenRecordset("Table1") Set Rs2 = CurrentDb.OpenRecordset("Table2") Rs1.MoveFirst While Not Rs1.EOF Str1 = UCase(Left(Rs1!Nom1, 5)) Rs2.MoveFirst While Not Rs2.EOF Trouve = 0 Trouve = InStr(1, UCase(Rs2!nom2), Str1) If Trouve <> 0 Then MsgBox "Trouvé " & Rs1!Nom1 & " dans " & Rs2!nom2 End If Rs2.MoveNext Wend Rs1.MoveNext Wend Set Rs1 = Nothing End Sub
Ca peut donner un début.