|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 25 ![]() |
Bonjour à tous,
Alors voila, je souhaiterai via une requete SQL affectuer un "INSERT INTO" dans une table access T_Préparateur à partir d'une autre table de ma base (T_Préparateur_Import) qui a éxactement les même Champs, mais pas les meme données. Cependant, je souhaiterai ajouter la ligne UNIQUEMENT si la ligne n'existe pas déjà dans ma table. Le but est donc d'obtenir ma table T_Préparateur avec les nouvelles données en plus. Je sais effectuer cela en utilisant des recordset mais je trouve le délais d'execution assez lent. C'est pour cela que je souhaiterai faire cela via ma requete SQL. Je pense qu'il faut utiliser une requete SQL qui doit ressembler à quelques chose comme ça mais je n'arrive pas à la faire fonctionner : Code sql :
INSERT INTO T_Préparateur VALUES SELECT * FROM T_Préparateur_Import WHERE T_Préparateur_Import.PNC AND T_Préparateur_Import.Num_Commande NOT IN (SELECT * FROM T_Préparateur) Merci d'avance |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : août 2006 Messages : 25 ![]() |
Je viens de penser a qqch.
Ne puis je pas utiliser la requete de typoe "left Join" pour ajouetr mes enregistrement ? Merci |
|
|
00
|
|
|
#3 | ||
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Bonjour.
Il m'avait semblé avoir lu des tests comparatifs montrant que DAO était plus rapide mais je peux me tromper. Avec DAO, j'aurais fait un parcours du jeu d'enregistrement et vérifié pour chaque enregistrement s'il n'est pas déjà présent dans la table T_Préparateur avant de l'ajouter. On peut faire cette vérif assez simplement avec un DCount(). En SQL, je ne suis pas très bon mais je pense que ça doit fonctionner comme ceci : Code SQL :
|
||
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Après réflexion, je pense qu'il te faudra préciser les champs pour le INSERT et donc dans tes SELECT
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 401 ![]() |
bonjour à tous,
le NOT IN se traînant comme une limace sous Access, on préfèrera un bon LEFT JOIN, du style: Code sql :
puis on bascule en requête Ajout avec l'assistant... |
||
|
00
|
|
|
#6 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Ok, c'est bon à savoir.
Je n'utilise que très peu du SQL pur sous Access. Je préfère DAO |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com