Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
daniel
Bonsoir, Dans l'onglet des requêtes, cliquer bonton "nouveau", et là choisir "Assistant Requête de non correspondance". La suite, suivant les choix est facile et très pédagogique Bonne soirée.
Bonsoir,
Dans l'onglet des requêtes, cliquer bonton "nouveau", et là choisir
"Assistant Requête de non correspondance".
La suite, suivant les choix est facile et très pédagogique
Bonne soirée.
Bonsoir, Dans l'onglet des requêtes, cliquer bonton "nouveau", et là choisir "Assistant Requête de non correspondance". La suite, suivant les choix est facile et très pédagogique Bonne soirée.
Eric
Bonjour,
En supposant que les 2 tables ont un champ commun (comme l'identifiant qui ne doit pas être un numéro automatique) par exemple RefArticle et en supposant que la table1 peut avoir des enregistrements propres à elle et d'autres communs avec la table2, de même la table 2 peut avoir des enregistrements propres et d'autres communs avec la table1. Il te faut faire une requête création de table dans laquelle tu insères les enregistrements propres respectivement à chacune des 2 tables, enregistrements issus d'une requête Union.
Adapter le nom des tables et des champs de jointure - Code à copier dans la fenêtre SQL de la requête (Creation d'une requête - Fermer la fenêtre 'Ajouter une table' - Menu Affichage - Mode SQL):
Création de la table avec Jointure externe & Union
SELECT * INTO TableDesAbsents FROM ( SELECT * FROM tbl1 LEFT JOIN tbl2 ON tbl1.RefArticle = tbl2.RefArticle WHERE tbl2.RefArticle Is Null UNION SELECT * FROM tbl2 LEFT JOIN tbl1 ON tbl1.RefArticle = tbl2RefArticle WHERE tbl1.RefArticle Is Null ) AS Essai ;
Cette méthode est la plus rapide.
Variante : Création de la table avec Union de sous-requêtes SELECT * INTO TableDesAbsents FROM ( SELECT * FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) UNION SELECT * FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) ) AS Essai ;
Explication: SELECT * FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) cette requête te donne tous les enreg de la table 1 qui ne sont pas dans la table 2.
SELECT * FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) Celle-ci te donne ceux de table 2 absents de table 1
L'UNION entre ces 2 requêtes va te retourner tous les absents respectivement des tables 1 et 2.
Le SELECT INTO créee une nouvelle table nommée TableDesAbsents.
Bonjour,
Je travaille sous Access 2003.
J'ai deux tables du même type. Il y a des articles en commun dans les deux tables.
Je voudrais avoir la différence des deux tables (les articles non en commun dans les deux tables) dans une nouvelle table.
Merci de votre aide.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
En supposant que les 2 tables ont un champ commun (comme l'identifiant
qui ne doit pas être un numéro automatique) par exemple RefArticle et en
supposant que la table1 peut avoir des enregistrements propres à elle et
d'autres communs avec la table2, de même la table 2 peut avoir des
enregistrements propres et d'autres communs avec la table1. Il te faut
faire une requête création de table dans laquelle tu insères les
enregistrements propres respectivement à chacune des 2 tables,
enregistrements issus d'une requête Union.
Adapter le nom des tables et des champs de jointure - Code à copier dans
la fenêtre SQL de la requête (Creation d'une requête - Fermer la fenêtre
'Ajouter une table' - Menu Affichage - Mode SQL):
Création de la table avec Jointure externe & Union
SELECT * INTO TableDesAbsents
FROM (
SELECT * FROM tbl1 LEFT JOIN tbl2
ON tbl1.RefArticle = tbl2.RefArticle
WHERE tbl2.RefArticle Is Null
UNION
SELECT * FROM tbl2 LEFT JOIN tbl1
ON tbl1.RefArticle = tbl2RefArticle
WHERE tbl1.RefArticle Is Null
)
AS Essai
;
Cette méthode est la plus rapide.
Variante : Création de la table avec Union de sous-requêtes
SELECT * INTO TableDesAbsents
FROM (
SELECT *
FROM tbl1
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl2
)
UNION
SELECT *
FROM tbl2
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl1
)
) AS Essai
;
Explication:
SELECT *
FROM tbl1
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl2
)
cette requête te donne tous les enreg de la table 1 qui ne sont pas dans
la table 2.
SELECT *
FROM tbl2
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl1
)
Celle-ci te donne ceux de table 2 absents de table 1
L'UNION entre ces 2 requêtes va te retourner tous les absents
respectivement des tables 1 et 2.
Le SELECT INTO créee une nouvelle table nommée TableDesAbsents.
Bonjour,
Je travaille sous Access 2003.
J'ai deux tables du même type. Il y a des articles en commun dans les deux
tables.
Je voudrais avoir la différence des deux tables (les articles non en commun
dans les deux tables) dans une nouvelle table.
Merci de votre aide.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
En supposant que les 2 tables ont un champ commun (comme l'identifiant qui ne doit pas être un numéro automatique) par exemple RefArticle et en supposant que la table1 peut avoir des enregistrements propres à elle et d'autres communs avec la table2, de même la table 2 peut avoir des enregistrements propres et d'autres communs avec la table1. Il te faut faire une requête création de table dans laquelle tu insères les enregistrements propres respectivement à chacune des 2 tables, enregistrements issus d'une requête Union.
Adapter le nom des tables et des champs de jointure - Code à copier dans la fenêtre SQL de la requête (Creation d'une requête - Fermer la fenêtre 'Ajouter une table' - Menu Affichage - Mode SQL):
Création de la table avec Jointure externe & Union
SELECT * INTO TableDesAbsents FROM ( SELECT * FROM tbl1 LEFT JOIN tbl2 ON tbl1.RefArticle = tbl2.RefArticle WHERE tbl2.RefArticle Is Null UNION SELECT * FROM tbl2 LEFT JOIN tbl1 ON tbl1.RefArticle = tbl2RefArticle WHERE tbl1.RefArticle Is Null ) AS Essai ;
Cette méthode est la plus rapide.
Variante : Création de la table avec Union de sous-requêtes SELECT * INTO TableDesAbsents FROM ( SELECT * FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) UNION SELECT * FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) ) AS Essai ;
Explication: SELECT * FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) cette requête te donne tous les enreg de la table 1 qui ne sont pas dans la table 2.
SELECT * FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) Celle-ci te donne ceux de table 2 absents de table 1
L'UNION entre ces 2 requêtes va te retourner tous les absents respectivement des tables 1 et 2.
Le SELECT INTO créee une nouvelle table nommée TableDesAbsents.
Bonjour,
Je travaille sous Access 2003.
J'ai deux tables du même type. Il y a des articles en commun dans les deux tables.
Je voudrais avoir la différence des deux tables (les articles non en commun dans les deux tables) dans une nouvelle table.
Merci de votre aide.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../...
et si tu veux savoir aussi dans la table des absents si l'article est absent de tbl1 ou de tbl2, modifies comme suit:
SELECT * INTO TableDesAbsents FROM ( SELECT * , "Absent de tbl2" AS Origine FROM tbl1 LEFT JOIN tbl2 ON tbl1.RefArticle = tbl2.RefArticle WHERE tbl2.RefArticle Is Null UNION SELECT * , "Absent de tbl1" FROM tbl2 LEFT JOIN tbl1 ON tbl1.RefArticle = tbl2RefArticle WHERE tbl1.RefArticle Is Null ) AS Essai ; Je viens de voir qu'avec la requête ci-dessus tu vas avoir 2 fois les champs, ce qui n'est pas le cas avec la variante.
SELECT * INTO TableDesAbsents FROM ( SELECT * , "Absent de tbl2" AS Origine FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) UNION SELECT *, "Absent de tbl1" FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) ) AS Essai ;
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
et si tu veux savoir aussi dans la table des absents si l'article est
absent de tbl1 ou de tbl2, modifies comme suit:
SELECT * INTO TableDesAbsents
FROM (
SELECT * , "Absent de tbl2" AS Origine FROM tbl1 LEFT JOIN tbl2
ON tbl1.RefArticle = tbl2.RefArticle
WHERE tbl2.RefArticle Is Null
UNION
SELECT * , "Absent de tbl1" FROM tbl2 LEFT JOIN tbl1
ON tbl1.RefArticle = tbl2RefArticle
WHERE tbl1.RefArticle Is Null
)
AS Essai
;
Je viens de voir qu'avec la requête ci-dessus tu vas avoir 2 fois les
champs, ce qui n'est pas le cas avec la variante.
SELECT * INTO TableDesAbsents
FROM (
SELECT * , "Absent de tbl2" AS Origine
FROM tbl1
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl2
)
UNION
SELECT *, "Absent de tbl1"
FROM tbl2
WHERE RefArticle NOT IN (
SELECT RefArticle FROM tbl1
)
) AS Essai
;
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
et si tu veux savoir aussi dans la table des absents si l'article est absent de tbl1 ou de tbl2, modifies comme suit:
SELECT * INTO TableDesAbsents FROM ( SELECT * , "Absent de tbl2" AS Origine FROM tbl1 LEFT JOIN tbl2 ON tbl1.RefArticle = tbl2.RefArticle WHERE tbl2.RefArticle Is Null UNION SELECT * , "Absent de tbl1" FROM tbl2 LEFT JOIN tbl1 ON tbl1.RefArticle = tbl2RefArticle WHERE tbl1.RefArticle Is Null ) AS Essai ; Je viens de voir qu'avec la requête ci-dessus tu vas avoir 2 fois les champs, ce qui n'est pas le cas avec la variante.
SELECT * INTO TableDesAbsents FROM ( SELECT * , "Absent de tbl2" AS Origine FROM tbl1 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl2 ) UNION SELECT *, "Absent de tbl1" FROM tbl2 WHERE RefArticle NOT IN ( SELECT RefArticle FROM tbl1 ) ) AS Essai ;
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr