PROBLEME DANS ACCESS

Fermé
XZA1 Messages postés 4 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 16 février 2011 - Modifié par XZA1 le 3/02/2011 à 09:46
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 - 27 févr. 2011 à 14:09
Bonjour,

ACCESS 2007

J'ai deux tables avec des noms de clients quand le nom de client et la ville sont identiques pas de problème dans ma requete le nom ressort. Mais quand le nom est un peu different
EX EARL DUPOND CHRISTIAN ET DUPOND CHRISTIAN ou autre exemples GRIMAUD VALERIE et GRIMAUD V la rien ne ressort normal. Mais j'aimerai savoir si il existe un moyen de dire si le nom est identique à 50% le faire apparaitre dans ma liste .

Merci de votre aide

3 réponses

Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
3 févr. 2011 à 13:32
NON.
0
Bonjour,

Je vais tenter de répondre, bien que mes connaissances d'access 2007 soit beaucoup moins vastes que celle de 2003.

Si vous avez mis en relation vos tables et appliqué l'intégrité référentiel, il vous sera impossible de faire ce que vous souhaitez, à moins de désactiver cette intégrité référentiel, ou bien de saisir exactement bien comme il faut les mêmes Noms et Adresses et tous ce dont vous avez besoin.

J'espère que cela pourra vous aider.
Cordialement,
Merik.
0
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 14:09
Bonjour,
voiçi une solution avec une fonction VBA et une requête en produit cartésien (sans jointure)

code VBA :

Function Fct_Vérif(ZP1, ZP2) As Double

Dim ZT1() As String
Dim ZT2() As String
Dim NB1 As Byte
Dim NB2 As Byte
Dim I1 As Byte
Dim I2 As Byte
Dim P As Double


ZT1 = Split(ZP1, " ")
ZT2 = Split(ZP2, " ")

NB1 = UBound(ZT1)
NB2 = UBound(ZT2)

For I1 = 0 To NB1
For I2 = 0 To NB2
If ZT1(I1) = ZT2(I2) Then
P = P + 1
End If
Next I2
Next I1

Fct_Vérif = P / (NB1 + 1)

End Function

Requête

SELECT T_1.Code1, T_1.Nom1, T_2.Code2, T_2.Nom2, Fct_Vérif([nom1],[nom2]) AS Pourcent
FROM T_1, T_2
WHERE (((Fct_Vérif([nom1],[nom2]))>0.5));

Le traitement peut être long et n'est pas parfait
0