Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 14 May 2008 17:04

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

[SQL - Access] Comparaison de chaine de caractère

Bonjour,
Je travaille sous 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 attributs.

Hors ligne

 

#2 Wed 14 May 2008 19:38

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3168
Site web

Re: [SQL - Access] Comparaison de chaine de caractère

Bonjour,

En premier lieu mettons nous d'accord sur les termes:

Une jointure se réalise entre deux tables. La clause SQL utilisée est Inner Join :

SELECT *
FROM Table1 INNER JOIN Table2 ON Table1.champ1 = Table2.PtrChamp1;

Deuxièmement une jointure se réalise en général entre un champs qui est  une clef primaire de table1 (qui sous access est un entier long souvent de type NumeroAuto) et un champs entier long de la table2.


Si vous souhaitez effectuer une requête de comparaison de chaîne de caractères (votre code SQL) il est possible d'utiliser les opérateurs LIKE, InSTR, STRComp. Je vous conseille l'aide d'access il y a tout un chapitre sur ce sujet.

Ceci dit ça va pas être facile, car avoir deux tables ou la même info est dupliquée c'est une erreur de conception. Déjà rien que le modèle pour le nom et le prénom, il ne faut pas un champs mais deux, rien que ceci faciliterait grandement l'utilisation des opérateurs de comparaison de chaîne.

A+

Christophe


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#3 Thu 15 May 2008 09:35

greg-gwened
Participant actif
Lieu: Vannes
Date d'inscription: 4 Oct 2007
Messages: 148

Re: [SQL - Access] Comparaison de chaine de caractère

Merci je vais jetter un coup d'oeil sur l'aide access

Pour ce qui est des données, on choisit pas forcément !!! Et c'est bien domage!!!
Ces données ont été saisies par différents organismes administratifs. Il est vrai que cela me simplifirait la vie si les données avait été saisie correctement et si 2 champs étaient utilisés pour nom et prénom.
En fait je souhaite associer des infos de la tales 2 a des enregistrements de la table 1.

C'est ma premiere expèrience pro (stage) et c'est la que l'on se rend compte qu'en cours les données sont parfaites, mais une fois en face "vraie" d'une base de données monstrueuse, rien ne va comme on voudrait!!!

En tout cas merci
@+
greg-gwened

Hors ligne

 

#4 Thu 15 May 2008 10:13

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3168
Site web

Re: [SQL - Access] Comparaison de chaine de caractère

Bonjour,

Je me doutais un peu que vous n'étiez pas responsable du "formatage" des données mais c'est utile à rappeler.

Ce que je vous conseille si vous le pouvez c'est de pré traiter chaque table par le code (vba par exemple) pour formater les contenus des champs.

A+

Christophe


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB