Bonjour.
Avant de te lancer dans une solution il serait important de savoir comment tes données sont partagées.
Sinon pour répondre à tes questions.
Pour la base locale (celle accessible sans connexion au réseau), au niveau de la structure elle peut être une simple copie de ta base centrale (celle accessible quand on est connecté).
L'idée générale est d'avoir 3 bases :
Base Frontale de saisie
Base Locale (utilisable hors connexion)
Base Centrale (utilisable avec connexion)
Le pont entre les 2 bases se fait via ta base frontale qui est liées aux tables de la base locale et aux table de la base centrale.
La manière de transférer de la loacle à la centrale et vice versa dépend de la réponse à la question initiale sur le partage des données.
Et au niveau pratique si passes toujours par des requêtes pour accéder à tes tables, basculer la même appli de loacle à centrale se fait assez facilement.
Cela te permet de n'avoir qu'une seule version de l'application qui marche partout.
Si tu retiens cette idée, tu as pour chacune des tables une requête reqNomTaTable qui vaut soit :
select [nomTaTableLocale].* from [nomTaTableLocale]
select [nomTaTableCentrale].* from [nomTaTableCentrale]
Au moment de la connexion ou de la déconnexion, tu modifies le SQL de tes reqNomTable par VBA pour les "brancher" sur les bonnes table.
Les seules exceptions à cela ce sont les requêtes pour le transfert de local à centrale et vice versa.
Ci-joint une micro maquette d'une architecture possible
Synchro.zip
Il te faut refaire les liens des tables pour pouvoir la tester.
Dans cette maquette les 2 BD dorsales ont exactement la même structure mais il n'est pas obligatoire qu'il en soit ainsi dans ton appli.
Le fromulaire frmChangerSource te permets de passer d'une frontale à l'autre.
Il faut que les autres objets soient fermés quand tu fais le basculement.
Note qu'il n'y a pas de transfert de données, juste un basculement vers une autre source.
Grâce aux requête, les formulaires de consultations res identiques quelle que soit la source.
A+
Partager