Mais je vois pas cette ligne exacte: Query1.SQL.Clear('SELECT Article,Code_article FROM article')
Meme si on utilise add a la place de clear ça plante et donne le message suivant utilisation incorrecte du mot clé element select
Version imprimable
pardonCode:
1
2 Query1.SQL.Clear('SELECT Article,Code_article FROM article');
Code:
1
2
3 Query1.SQL.Clear Query1.SQL.Add('SELECT Article,Code_article FROM article');
oui bien sûr avais-je la tête il te manque le champ annee dans le SELECT et ce n'est pas un paramètre.:D
Sinon tu fait carrement une clause WHERE pour eviter le filtre ? :Code:
1
2 Query1.SQL.Add('SELECT Article,Code_article,annee FROM article');
Normalement ca aurait dû marcher avec le filtre en rajoutant le champ manquant ?Code:
1
2
3
4 Query1.SQL.Add('SELECT Article,Code_article FROM article WHERE (annee=:Param1)'); Query1.ParamByName('Param1').AsString:='annee'; Query1.Open;
Voilà un modèle de requête possible
Code:
1
2
3
4
5
6 INSERT INTO "Articles.DB" (Annee, NumArticle, PrixUnitaire) SELECT 2008, D1.NumArticle, D1.PrixUnitaire FROM "Articles.DB" D1 WHERE (D1.Annee = 2007)
L'exemple d'ALWEBER n'était qu'un aperçu de la requête "finale" telle qu'on pourrait l'avoir quand tu codes dans l'analyseur de requête. Evidemment après il faut remplacer 2008 et 2007 par des :param1 et :param2 puis les valuer comme dans les exemples précédents.
Sachant quand même que pour utiliser ce genre du requête tu dois savoir donc auparavant l'année de départ (2007) et l'année cible (2008). Donc il faut avoir fait en sorte que l'utilisateur ait choisit ces dates avant de lancer l'exécution de cette requête.