Supprimer données égales sur deux tables

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 25 oct. 2016 à 20:43
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 27 oct. 2016 à 00:50
Bonjour,
J'ai deux tables tbl1 et tbl2 sans relation.
la table 2 est chargée depuis un bouton.
J'ai fait une requête sélection qui affiche des enregistrements égaux aux deux tables:
SELECT tbl2.Name, tbl2.Path
FROM tbl1, tbl2
WHERE ((([tbl2].[Name]) Like [tbl1].[Name] Or ([tbl2].[Name])=[tbl1].[Name1]))
ORDER BY tbl2.Name;

jusque là tout va bien maintenant je voudrais effacer de la table tbl2 les enregistrements égaux à tbl1.
j'ai testé pas mal de truc mais rien n'y fait Access me demande toujours de spécifier la table ou je veux supprimer les données.
j'ai même essayer une méthode trouvée sur la toile avec une instruction IN mais rien n'y fait.
Merci de votre aide.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
26 oct. 2016 à 15:20
Bonjour,

Oula la la .. je vois pleins de choses qui me piquent les yeux ...

Déjà ...
WHERE ((([tbl2].[Name]) Like [tbl1].[Name] Or ([tbl2].[Name])=[tbl1].[Name1]))


Le "LIKE" s'utilise avec des caractères jocker ... cela sert à trouver des correspondances du type : "contient".
Par exemple ...
dans le champ toto j'ai comme valeur "ceci est un exemple"
et que dans ma requete je veux trouver les enregistrements ou le mot "exemple" est présent je ferai :
WHERE toto LIKE '%exemple%'

NB: Cela me retourne également les lignes ne contenant QUE le mot "exemple" ... donc là .. ta double condition avec le "=" est inutile !

Pour en revenir à ta question... une instruction du genre devrait suffire :
DELETE FROM table2
WHERE table2.name IN ( SELECT table1.name from table1)



0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
27 oct. 2016 à 00:50
Merci Jordane d'avoir répondu,
Pour le LIKE en fait je suis une nouille concernant le SQL et pour Access aussi d'ailleurs. Donc je lui fait confiance quand je crée ma requette il sort un LIKE.
Maintenant je veux que la comparaison se fasse sur les majuscules ou minuscules peut-être que le "=" n'est pas bon dans ce cas là.
Pour la double condition je dois la garder car je teste deux noms donc Name ou Name1 doit être égal au nom de la première table.
Je vais tester ta requête mais je pense avoir déjà tester cela avec les deux conditions.
je mettrais les requêtes testées pour ceux qui voudrais y regarder de plus prés.
0
Rejoignez-nous