Comparer deux bases Access

Teteaqueue

XLDnaute Nouveau
Bonjour à toutes et à tous,

Voilà mon problème: j'ai à ma disposition 2 tables de références produits, l'une datant de novembre 2008 et l'autre de février 2009. Cette dernière constitue une mise à jour en annule et remplace de la 1ère.

J'aimerais maintenant créer une requête me sortant simplement les nouvelles références produits (différence entre la base de février 2009 et celle de novembre 2008).

Voici mon raisonnement (que j'aimerais transcrire au niveau informatique grâce à vous ;-): je regarde la 1ère cellule de la 1ère colonne de la table de février, la requête parcoure ("scanne") l'ensemble de la même colonne mais cette fois-ci sur la table de novembre 2008. Si la référence est trouvée, elle ne l'affiche pas mais si elle ne la trouve pas, elle est affichée. Et on recommence pour la 2ème cellule, etc....

J'accepte les solutions Excel et Access, les deux me vont bien. Je vous laisse juger de la solution la plus simple et la plus rapide.

Merci d'avance pour votre aide.
 

PMO2

XLDnaute Accro
Re : Comparer deux bases Access

Bonjour,

Dans la mesure où l'ancienne table et la nouvelle table sont bien dans la même BDD Access, essayez la démarche suivante :

ATTENTION par précaution faites un essai sur une copie de votre BDD

1) dans la BDD créez une requête en mode création
2) fermez la boîte de dialogue qui s'affiche
3) faites menu Affichage/Mode SQL
4) copiez dans la fenêtre de requête le code suivant

Code:
SELECT *
FROM tblNouvelle
WHERE NOT EXISTS (SELECT * FROM tblAncienne
WHERE ChampCommun = tblNouvelle.ChampCommun );

5) modifiez le code selon vos critères
- tblNouvelle par le nom de votre table actuelle
- tblAncienne par le nom de votre ancienne table
- ChampCommun (clé unique) par le nom d'un champ (clé unique) commun à ces 2 tables
6) fermez et enregistrez la requête
7) lancez cette requête

Cordialement.

PMO
Patrick Morange
 

falkner glact

XLDnaute Junior
Re : Comparer deux bases Access

Bonsoir à tous,

Je déterre ce vieux post car il correspond exactement à ce que je souhaite faire. Je précise que je suis un pur novice sous access.

J'ajoute aussi que je souhaite faire apparaitre dans la 3 ème base le résultat du matching old_base / new_base c'est à dire... tout ce qui est dans OLD mais qui est absent de NEW est mis dans 3ème base

C'est possible ?

Merci (tous les éléments dont je dispose proviennent de deux fichiers excel dont j'ai généré les deux bases access)

Je vous remercie tous de votre assistance

Franck
 

PMO2

XLDnaute Accro
Re : Comparer deux bases Access

Bonjour Franck,

J'ai supposé que ce que vous appelez BASE est en fait une TABLE et que, par conséquent, les 2 tables OLD et NEW sont dans la même BASE Access.
Si c'est bien le cas alors essayez la requête suivante (sinon signalez le moi)

ATTENTION par précaution faites un essai sur une copie de votre BDD

1) dans la BDD créez une requête en mode création
2) fermez la boîte de dialogue qui s'affiche
3) faites menu Affichage/Mode SQL
4) copiez dans la fenêtre de requête le code suivant
Code:
SELECT * INTO table3
FROM old
WHERE NOT EXISTS (SELECT * FROM new
WHERE ChampCommun = old.ChampCommun );
5) modifiez le code selon vos critères
- table3 par le nom de la nouvelle table qui va se créer
- new par le nom de votre table actuelle
- old par le nom de votre ancienne table
- ChampCommun (clé unique) par le nom d'un champ (clé unique) commun à ces 2 tables
6) fermez et enregistrez la requête
7) lancez cette requête

Cordialement.

PMO
Patrick Morange
 

falkner glact

XLDnaute Junior
Re : Comparer deux bases Access

Bonsoir Patrick et merci de votre retour. En effet, ce que j'appelle BASE correspond bien à une table (j'ai débuté hier sous access... désolé de tout mélanger).

Je suis passé par les Assistants pour créer mes requetes et ai obtenu des résultats corrects sans en être pleinement satisfait. Je vais essayer votre requete en mode sql et verrai si le résultat s'approche du mien.

Le plus délicat a été de donner le bon sens à ma requête de non correspondance, j'avais aussi des problèmes avec les jointures... pour info, je me suis renseigné sur ce site très bien réalisé mais un peu complexe pour un débutant. J'ai bien vu la puissance de l'outil mais sur une base comme la mienne qui contient 3700 lignes d'un côté, réparties sur 7 colonnes dont les données ne sont pas les mêmes sur les deux bases mais qu'il faut rapprocher afin de savoir ce qui est présent aujourd'hui mais ne l'était pas il y a un mois, générer une table de cette différence et l'ajouter à la nouvelle à été pour moi un grand moment de solitude.... je pense donc repartir avec mes rechecheV sur excel, j'ai au moins l'impression de comprendre ce qui est fait "derrière"

voilà le lien :


Merci à vous, je vous fais un retour asap
 

Teteaqueue

XLDnaute Nouveau
Re : Comparer deux bases Access

Bonjour,

Je reviens un peu tard suite à la réponse qui m'a été faite. Toutes mes excuses.

Malheureusement, la solution proposée initialement ne fonctionne pas de mon côté (voir la capture d'écran jointe à ce message).

Voici une autre solution qu'on m'a proposée:
"Créer une requête avec les 2 tables et faire une jointure ouverte sur l’ancienne table sur le champ commun puis selectionner tous les enregistrements dont le champ commun dans l’ancienne table". Dans les propriétés de la jointure, on sélectionne alors l'option "Inclure tous les enregistrements de la table NEW et seulement ceux de la table OLD pour lesquels les champs joints sont égaux"

Le problème, c'est que je n'arrive pas à concevoir la requête sous Access (via l'outil Requêtes classique). On me parle de valeur = Null dans cette requête mais je ne sais pas quoi rentrer exactement.

Merci d'avance. A votre dispo pour plus d'explication.

Cdt,
 

Pièces jointes

  • Capture d'Ecran Access SQL.JPG
    Capture d'Ecran Access SQL.JPG
    30.1 KB · Affichages: 449

PMO2

XLDnaute Accro
Re : Comparer deux bases Access

Bonjour,

Veuillez trouver, ci-dessous le code SQL corrigé.
L'erreur de syntaxe provient de l'espace contenu dans le nom du champ.

Code:
SELECT * INTO tableDifferences
FROM 20081101
WHERE NOT EXISTS (SELECT * FROM 20090217
WHERE [Code Produit] = [20081101].[Code Produit]);

Cordialement.

PMO
Patrick Morange
 

antoine.ferreira

XLDnaute Nouveau
Re : Comparer deux bases Access

Bonjour à tous,

J'ai dû me mettre a bosser sur Access car je gère de grosse BDD.

La question est la suivante :

J'ai d'un coté une table qui contient mes enregistrements "CD" et une autre qui contient un ensemble de mot clés "mot-cles" (un mot par ligne).

Je souhaiterais crée une requête qui permette de rechercher tous les mots clés de ma table "mot-cles" dans ma table "CD" > 1. De pouvoir les mettre en évidence et 2 de pouvoir en supprimer toute la ligne qui contient le mot clés

A savoir que ma table "CD" contient plusieurs champs et que le mot rechercher peux se trouver dans n'importe quel champ.

Pour résumé je souhaiterais une faire un ctr F sur toute ma table "CD"mais avec plusieurs mot clés.

Voila je sais qu'un logiciel comme Access peux nous permettent ce genre de chose mais comme je vous l'ai dit je suis novice.

Merci d'avance pour vos réponses Ciao.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC