Bonjour,
Je travaille sous ACCESS.
Je souhaite réaliser une requête manuellement permettant de comparer deux tables de même structure provenant de deux bases de même structure.
Mon idée pour le moment est d'émettre une requête à chaque table qui retourne une table contenant les éléments différents. Exemple : deux tables du nom « Langue » (de base différentes) contenant les champs : la_ch1, la_ch2, la_ch3.
J'ai élaboré une première requête de la forme suivante émise sur la base1.mdb:
SELECT *
FROM
(SELECT *
FROM Langue T1
WHERE NOT EXISTS
(
SELECT 1
FROM Langue T2 IN 'C:\temp\base2.mdb'
WHERE
(T1.la_ch1=T2.la_ ch1 AND
T1.la_ ch2=T2.la_ ch2 AND
T1.la_ ch3=T2.la_ ch3)
)
)
Cette requête relève bien tous les éléments différents mais relève aussi les éléments (enregistrements) contenant un champ ou plusieurs champs à valeur NULL. J'ai donc rajouté l'exception suivante :
WHERE
(T1.la_ ch1 IS NOT NULL
AND T1.la_ ch2 IS NOT NULL
AND T1.la_ ch3 IS NOT NULL)
Soit la requête :
SELECT *
FROM
(SELECT *
FROM Langue T1
WHERE NOT EXISTS
(
SELECT 1
FROM Langue T2 IN 'C:\temp\base2.mdb'
WHERE
(T1.la_ch1=T2.la_ ch1 AND
T1.la_ ch2=T2.la_ ch2 AND
T1.la_ ch3=T2.la_ ch3)
)
)
WHERE
(T1.la_ ch1 IS NOT NULL
AND T1.la_ ch2 IS NOT NULL
AND T1.la_ ch3 IS NOT NULL)
Du coup, je n'ai plus les enregistrements qui contiennent des champs NULL et qui sont différents dans les deux tables.
Connaissez-vous un moyen de résoudre le problème ?
Peut-on créer en une requête (par base) une comparaison parfaite (élément avec champ NULL traité) via ACCESS ?
Merci d'avance.
Xpmich.