[SQL Access]
greg-gwened
-
greg-gwened -
greg-gwened -
Bonjour,
Je travaille souus access et je souhaite effectuer une jointure sur un champ de type chaine de caractère.
Cependant, les contraintes de saisie n'était pas les même pour les deux tables et je constate quelques erreurs de frappe.
Voici quelques exemples (accents, tirets, fautes de frappe, ...):
Table 1: | Table 2:
|
Champ1 | Champ2
|
Jean Pierre Dupont | Jean-Pierre Dupont
Aimee Dupont | Aimé Dupont
Georges Dupond | Georges Dupont
SELECT *
FROM Table1, Table2
WHERE Table1.Champ1=Table2.Champ2
Je souhaiterais donc effectuer cette jointure de façon à inclure une tolérance de deux ou trois caratères différents entre les deux champs.
Merci d'avance
greg-gwened
Je travaille souus access et je souhaite effectuer une jointure sur un champ de type chaine de caractère.
Cependant, les contraintes de saisie n'était pas les même pour les deux tables et je constate quelques erreurs de frappe.
Voici quelques exemples (accents, tirets, fautes de frappe, ...):
Table 1: | Table 2:
|
Champ1 | Champ2
|
Jean Pierre Dupont | Jean-Pierre Dupont
Aimee Dupont | Aimé Dupont
Georges Dupond | Georges Dupont
SELECT *
FROM Table1, Table2
WHERE Table1.Champ1=Table2.Champ2
Je souhaiterais donc effectuer cette jointure de façon à inclure une tolérance de deux ou trois caratères différents entre les deux champs.
Merci d'avance
greg-gwened
Configuration: Windows XP Internet Explorer 6.0
2 réponses
-
bonjour,
A ma connaissance pour faire ce que tu demandes il faut utiliser du VB.
car on peux utiliser la clause SQL "LIKE" mais avec un parcours de la chaine à rechercher.
pour l'utilisation de deux table simultanément c'est un peu compliqué.
Voici une fonction pour te donner une condition sur chaine à rechercher avec une tolérence de un caractère :
////////////////////////////////////////////////////
Function GetCondition(Champ1, s As String) 'Ou "Champ1" est le nom du champ du filtre, et "s" est la chaine recherchée
Dim SQL As String
SQL = "(" & Champ1 & " = '" & s & "')"
For i = 1 To Len(s)
SQL = SQL & " or (" & Champ1 & " LIKE '" & Left(s, i - 1) & "?" & Mid(s, i, 1) & Right(s, Len(s) - i) & "')"
Next i
If s <> "" Then
SQL = SQL & " or (" & Champ1 & " LIKE '" & s & "?')"
End If
GetCondition = SQL
End Function
//////////////////////////////////////////////////// -
Merci pour ta réponse mais je ne connais pas le VB
Je vais tout de meme étudier cela car au dela du sujet du post, cela m'interresse.
Cependant si quelqu'un connait un moyen de resoudre mon probleme en utilisant uniquement le SQL je suis preneur.
Merci