Supprimer données égales sur deux tables

Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Dernière intervention
17 mars 2017
- - Dernière réponse : valtrase
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Dernière intervention
17 mars 2017
- 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.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23610
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
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)



valtrase
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Dernière intervention
17 mars 2017
-
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.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.