Dans ce cas,
Les tables TEMP2 et TEMP3 servent à alimenter 2 autres tables (t2 et t3) dans lesquelles figurent que quelques champs des tables TEMP2 et TEMP3.
En effet, les tables temporaires sont alimentées automatiquement par 2 fichiers Excels (un fichier pour chaque table). Dans les fichiers excels, il peut y avoir des modifications de données de temps en temps. Quand il y a des modifications dans les fichiers Excels, il y a aussi une mise à jour automatique dans les tables TEMP2 et TEMP3 (par conséquence, dans les tables t2 et t3 aussi) à chaque ouverture de la base de données access (via une macro autoexec). Pour les mises à jour dans les tables t2 et t3, j'ai utilisé des requêtes de mises à jour que je vais appeler req_maj_2 pour t2 et req_maj_3 pour la table t3.
Avant de lancer tes requêtes de mise à jour depuis tes tables temporaires Temp2 et Temp3 vers t2 et t3 (si j'ai bien compris) tu peux tester s'il y a eu des modification ou pas.
Prenons le cas de temp2 par exemple,
tu crée 3 requêtes basé sur tes deux tables t2 et Temp2.
La première sera du style :
Select count(*) from t2 where [MonChamp] & Format(MaDate,"dd/mm/yyyy hh:nn:ss") not in (select [MonChamp] & Format(MaDate,"dd/mm/yyyy hh:nn:ss") from temps2)
Tu aura ainsi le nombre de clé dans T2 qui n'apparaissent plus dans temps2 et donc qui ont été supprimées.
Ensuite
Select count(*) from temp2 where [MonChamp] & Format(MaDate,"dd/mm/yyyy hh:nn:ss") not in (select [MonChamp] & Format(MaDate,"dd/mm/yyyy hh:nn:ss") from t2)
C'est l'inverse et tu aura ainsi le nombre de clé dans Temps2 qui n'apparaissent pas dans t2 et donc qui sont a ajouter.
Et enfin la dernière la plus complexe:
Select count(t2.*) from t2,temp2 Where (t2.[MonChamp] & Format(t2.MaDate,"dd/mm/yyyy hh:nn:ss") = temps2.[MonChamp] & Format(temps2.MaDate,"dd/mm/yyyy hh:nn:ss")) AND (t2.Champ1<>temps2.champ1 OR t2.Champ2<>temps2.champ2 OR t2.Champ3<>temps2.champ3)
Ou tu dois faire l'égalité sur la clé et regarder si l'un des champs a été modifié.
Ainsi si l'une des requêtes te renvoie un résultat différent de 0 alors cela implique qu'il y a eu une modification du fichier Excel ![;)](https://www.developpez.net/forums/images/smilies/icon_wink.gif)
Bon courage
Partager