Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 11h09   #1
Nouveau Membre du Club
 
Yoann
Inscription : février 2011
Messages : 126
Détails du profil
Informations personnelles :
Nom : Yoann

Informations forums :
Inscription : février 2011
Messages : 126
Points : 29
Points : 29
Par défaut difficulté Requete Ajout

Bonjour,

J'ai actuellement une table qui se nomme "TEST" avec différents champs (New_article et Ancien_article, Ancien_article est unique). J'ai une table 'TMP',qui la même base que 'TEST' mais vide, elle sera alimentée par un fichier .xls que l'utilisateur importera avec ses données. l'utilisateur va renseigner dans son fichier pour tel Ancien_article voici la nouvelle référence New_article)
l'objectif est d'ajouter les données TMP à la table TEST, sans doublons bien sur !

moi j'ai essayé cela:

Code SQL :
1
2
3
4
INSERT INTO TEST ( [New_article] )
SELECT TMP.[New_article]
FROM TEST, TMP
WHERE (([TEST]![Ancien_Article]<>[TMP]![Ancien_article]));
ce que je voulais faire : Ajouter le New_article dans la base TEST tel que l'ancien_article de la table TEST et de la table TMP soit différents (pour éviter les doublons)

ça ne marche évidement pas, et je suis bloqué.
Merci d'avance pour votre aide et vos solutions
Magno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 12h41   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
salut,

tu cherches a inserer des donnees si elles sont manquantes, ou bien lorsqu'elles sont differentes ?

la partie FROM de ta requete laisse planer un doute

S'il s'agit de ne prendre que les [Ancien_article] qui ne figurent pas dans la table, il faut faire une requete de non correspondance (LEFT JOIN + Is NULL). L'assistant propose facielement la construction de cette requete
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 13h49   #3
Nouveau Membre du Club
 
Yoann
Inscription : février 2011
Messages : 126
Détails du profil
Informations personnelles :
Nom : Yoann

Informations forums :
Inscription : février 2011
Messages : 126
Points : 29
Points : 29
Voici un exemple :

'TEST' : ancien_article : a new_article:1
b 2
c 3

'TMP' : ancien_article : a new_article : 1
b 2
d 4
e 5

moi ce que je voudrais faire, c'est d'ajouter dans ma table 'TEST' les deux lignes d et e
Mais avec la relation Left Join,si j'ai bien compris le principe et de chercher la correspondance (soit égale) entre deux champs. donc si je mets en correspondance mon ancien_article, il va recopier toutes les lignes qui sont =, hors moi je ne veux que les ligne ou pour lequel ancien_article de ma table 'TEST' est différent de mon ancien_article de ma table 'TMP'
Si il vous faut plus d'explication je suis disponible toute l'après midi
Magno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 13h57   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
OK,
donc seul le champ ancien_article doit etre pris en compte ou pas ?

Dans l'idee de requete SELECT:

Code SQL :
1
2
3
SELECT TMP.* 
FROM TMP LEFT JOIN TEST ON TMP.ancien_article = TEST.ancien_article AND TMP.new_article = TEST.new_article
WHERE TEST.ancien_article IS NULL;
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 14h30   #5
Nouveau Membre du Club
 
Yoann
Inscription : février 2011
Messages : 126
Détails du profil
Informations personnelles :
Nom : Yoann

Informations forums :
Inscription : février 2011
Messages : 126
Points : 29
Points : 29
Code SQL :
1
2
3
SELECT TMP.*
FROM TMP LEFT JOIN TEST ON TMP.[Ancien_article] = TEST.[Ancien_article] AND TMP.[new_article]=TEST.[New_article]
WHERE TMP.[CODE ARTICLE SIRLOG]<>TEST.[CODE ARTICLE SIRLOG];

je reprends : voila ce que je voudrais dans l'idée, en pratique ça ne marche pas !

Parce que, le left join m'affiche toutes mes données hors je ne veux que les nouvelles données... qui par la suite seront intégrées
Magno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 15h12   #6
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
Ok,
pour filtrer les donnees nouvelles (id est qui apparaissent dans TMP mais pas dans TEST), il faut ajouter un filtre sur un des champs de TEST avec un IS NULL
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h01.


 
 
 
 
Partenaires

Hébergement Web