Bonjour,
Je suis en train de coder un module VBA sous Access 2003.
J'aimerais exécuter une requête SQL avec une jointure.
Ma première idée était :
Mais cela fait planter Access (sic), qui se ferme. J'observe néanmoins que la requête a été correctement exécutée... De plus le traitement est très long (cela vient du fait que Table1 n'est pas indexée, mais je ne peux pas l'indexer pour d'autres raisons).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set Qdf = maBase.CreateQueryDef("", "DELETE FROM Table1 t1 WHERE NOT EXISTS (SELECT * FROM Table2 t2 WHERE t2.unChamp='youhou' AND t1.unChamp=t2.unAutreChamp);") Qdf.Execute
Je pensais donc faire autrement, comme :
Mais cela ne marche pas, Access me sort une erreur comme quoi je n'ai pas spécifié la table contenant les enregistrements à supprimer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set Qdf = maBase.CreateQueryDef("", "DELETE FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.unChamp = t2.unAutreChamp WHERE t2.unChamp = 'youhou' AND IsNull(t2.unAutreChamp);") Qdf.Execute
Si quelqu'un peut me donner son avis ou bien me dire où le bât blesse, ce serait aimable.
Merci
Partager