Bonjour,
Je cherche à améliorer une requête d'insert en y mettant des critères pour ne pas insérer partout!
Actuellement je fais un delete puis un insert :
DoCmd.RunSQL "Delete * from [HISTOCLUB] WHERE [ANNEE] LIKE " & ANNEETARIFCLUB & ""
puis mon insert que je souhaite 'filtrer' sur la même table : si ANNEE est différent de mon champ ANNEETARIFCLUB et si C_COD_CLT <> CODECLIENT alors je fais le insert
1 2 3 4 5
| Désinscription = "INSERT INTO HISTOCLUB " & _
"( C_COD_CLT, ANNEE ) " & _
"SELECT '" & CODECLIENT & "', " & ANNEETARIFCLUB & " FROM HISTOCLUB WHERE ANNEE <> " & ANNEETARIFCLUB & " AND C_COD_CLT <> CODECLIENT;"
Debug.Print ReqINSCRIPTIONANNEECLUB
DoCmd.RunSQL ReqINSCRIPTIONANNEECLUB |
ce qui me donne cette requête
extrait de 2 lignes)
INSERT INTO HISTOCLUB ( C_COD_CLT, ANNEE ) SELECT '08043', 2011 FROM HISTOCLUB WHERE ANNEE <> 2011 AND C_COD_CLT <> '08043';
INSERT INTO HISTOCLUB ( C_COD_CLT, ANNEE ) SELECT '08048', 2011 FROM HISTOCLUB WHERE ANNEE <> 2011 AND C_COD_CLT <> '08048';
cela tourne mais rien ne se met dans ma table qui est vide.
J'ai essayé en enlevant le FROM (car finalement je veux qu'elle se filtre sur elle-même)
1 2 3 4 5
| Désinscription = "INSERT INTO HISTOCLUB " & _
"( C_COD_CLT, ANNEE ) " & _
"SELECT '" & CODECLIENT & "', " & ANNEETARIFCLUB & " WHERE ANNEE <> " & ANNEETARIFCLUB & " AND C_COD_CLT <> CODECLIENT;"
Debug.Print ReqINSCRIPTIONANNEECLUB
DoCmd.RunSQL ReqINSCRIPTIONANNEECLUB |
mais là, je me fais sermoner erreur 3075 erreur de syntaxe opérateur absent
Savez-vous s'il est possible de faire un INSERT dans un table en filtrant sur cette même table ?
Merci
Partager