Comparer 2 tables sous access

Résolu/Fermé
Babar - 25 nov. 2010 à 17:54
 Pseudosaure - 30 nov. 2010 à 22:45
Bonjour à tous,

Je suis nouveau sur ce forum et novice sur access / sql.

Je vous expose mon problème j'ai une base de données avec 2 tables comme suit :

Table1 Table2
Champ1 Champ1
enregistrement1 enregistrement1
enregistrement2 enregistrement2
enregistrement3 enregistrement3

Le champ1 de la Table1 contient une liste produit et le champ1 de la Table2 contient une liste aléatoire de mots-clés.

Je souhaiterai (sous Access) créé une requête de sorte qu'il me selectionne et m'affiche tous les enregistrements du champ1 (Table1) qui contiennent un mot-clé du champ1 (Table2).

Par ex :

Table1 / Champ1 contient "CremeSolaire", et la table 2 / Champ1 contient "Solaire".

Je souhaite donc que Cremesolaire qui contient "Solaire" soit selectionnée et affichée dans un rapport ou une nouvelle table.

Aidez moi s'il vous plaît, j'arrête pas d'essayer je pète un plomb.

Merci bien.
A voir également:

3 réponses

Pseudosaure
25 nov. 2010 à 20:32
Le plus facile c'est de nous mettre la base dispo en téléchargement...

Bon, ton query doit porter sur deux tables, à la "sauvage", puisqu'il n'y a pas de jointure sur une clé unique. Conséquence, je te conseille de placer les champs de recherche en indexé (avec ou sans doublons, à toi de voir).

Tu créé une requête, et tu colle ce SQL dedans en adaptant :

SELECT Table1.Champ1
FROM Table1, Table2
WHERE InStr(Table1.Champ1,Table2.Champ1)

Oki ?
2
Pseudosaure
25 nov. 2010 à 20:33
J'ajoute que c'est relou comme requête : a ne pas faire sur une grosse base à moins que ton ordi n'ait rien d'autre à faire des douze prochaines heures :D
0
God Bless Pseudosaure,

Ta requête marche à merveille, voici le code au final :

SELECT [Ficher produit].Champ1, mot_cles.Champ1, [Ficher produit].ID
FROM [Ficher produit], mot_cles
WHERE (((InStr([Ficher produit].[Champ1],[mot_cles].[Champ1]))<>False));

Là, apparemment la requête exécute la recherche uniquement sur le champ 1 de la table produit.

Est ce que l'on peux étendre la recherche sur tous les champs de la table produit d'après toi ?

Thx
0
Une fois les résultats vérifiés, si je souhaite supprimer les enregistrements comment dois je faire ?
0
Pseudosaure
30 nov. 2010 à 22:45
Idem :

DELETE * FROM Matable1 INNER JOIN Matable2 On blabla
WHERE condition

Et n'oublie pas de spécifier ta condition sinon c'est vidange complète.

Tu peux aussi te contenter d'effacer dans la table principale si tu as configuré l'effacement en cascade via les options d'intégrité référentielles.

Bonne soirée,
0