Bonjour.
pour des raisons de rapidité, je dois avoir un doublon déporté de plusieurs tables, les tables d'origine sont sur un serveur de fichier (mdb), le doublon est sur la machine de contrôle, et je dois obtenir des résultats le + rapidement possible (l'opérateur attend une étiquette, chaque seconde compte)
il faut donc que la 2éme soit une copie de la 1ére.
les 2 tables sont visibles de la même base (liées).
cela sécurisera aussi l'appli en cas de panne réseau.
la 2éme peut être accédée tous les 5 sec par une procédure sur timer, donc pas de suppression brutale de table, ou de delete * suivi d'un append total.
pour faire la synchro, je veux une fonction "générale" car cela va se reproduire.
pour la synchro :
- passage de 3 paramètres : table source T1, table dest T2, clef.
- ajout des nouveaux : ok via une clause SQL on teste sur clef et on append les nouveaux.
- suppression des obsolètes : on teste sur la clef : sup des absents de T2 par rapport à T1
- update des communs : c'est là que cela se complique, sachant que n'importe quel champ autre que la clef a pu être modifié dans T1.
je ne vois qu'une solution, en VB :
- ouvrir T1
- ouvrir T2
- pour chaque record de T1
lire clef
chercher clef dans T2
comparer chaque champ de T1 par rapport au même de T2, si différent, edit, update.
close T1 et T2
cette synchro sera faite tous les xx minutes par un formulaire, via une base dédiée à cela, sur un pc de traitement, autre que celui destinataire de T2; on pousse la MAJ sur le PC ayant T2.
votre avis m'interesse...
@+
Partager