Copier une table vers une autre base Access

anthooooony

XLDnaute Occasionnel
Bonjour,

J'ai une vingtaine de base access avec une table Agence code entité, niveau hierarchique.

le probleme que j'ai c est que desfois je rajoute des agences dans une table, je modifie dans l'autre et au final je ne reussi à rien parce les 19 autres bases qui ont cette table agence ne sont pas modifié.. ce qui veut dire que les rapports ne sont pas tout à fait bons...

J'ai pensé à faire une base access avec seulement une table 'agence'
et lors que je veux modifier la table agence je l'envoie dans toutes les autres bases pour que tout se mettent à jours.
j'ai pensé à faire une base avec un lien vers toutes les autres bases, mais j'ai l'impression que ca ralenti
Autre solution à laquelle j'ai pensé effacer le contenu de toutes les tables agences de toutes mes bases access et copier coller le contenu de la recemment modifiée..

j'ai le point 1 mais pas le point 2...j'ai tapé toute sorte de chose, envoyer table vers une autre base access, table access vers une autre, etc et etcc
mais je n'ai pas trouvé de solution...
auriez vous une idée pour m'avancer vers la lumière.. ? ;)

merci d'avance

Anthooooony

Code:
Sub ViderTableAccess()
    Dim acApp As New Access.Application
   
    ' Démarrer Access
    Set acApp = New Access.Application
       '- ---------- BASE 1-----------------
    ' Ouvrir la base de données concernée
    acApp.OpenCurrentDatabase ("N:\FORMULES\excel access access excel\organigramme.accdb")
   
    ' Exécuter l'instruction SQL
    acApp.DoCmd.RunSQL "DELETE * FROM ENTITeS;"
     

      acApp.Quit
    Set acApp = Nothing
    
    
    '- ---------- BASE 2-----------------
      acApp.OpenCurrentDatabase ("C:\Documents and Settings\RC1194\Desktop\Test appli\MaBase1.mdb")
   
    ' Exécuter l'instruction SQL
    acApp.DoCmd.RunSQL "DELETE * FROM ENTITeS;"
    
          acApp.Quit
    Set acApp = Nothing
'- ---------- BASE 3-----------------
         acApp.OpenCurrentDatabase ("C:\Documents and Settings\RC1194\Desktop\Test appli\MaBase2.mdb")
   
    ' Exécuter l'instruction SQL
    acApp.DoCmd.RunSQL "DELETE * FROM ENTITeS;"
    
          acApp.Quit
    Set acApp = Nothing
    
    
    
End Sub
 

anthooooony

XLDnaute Occasionnel
Re : Copier une table vers une autre base Access

Bonjour Christ

La question 1 est : pourquoi 20 bases ?
J'ai un peu moins de 20 bases, mais j'en ai crée un par rapport que je fais
Client (encaissement, dso etc)
fournisseur(reglement, loi lme) j'en passe et des meilleurs.
chacun à sa base access pour pouvoir mieux les identifier, et pour que ce soit moins lourd.

La question 2 est : tout cela est stocké où et comment ?
Tout est stoquer au meme endroit, je suis justement en train d essayer de mieux m'organiser et de regrouper tout les petits projets. dans le meme serveur et meme dossier (base access).

Le denominateur commun de chaque base c'est cette fameuse table (agences)

en esperant t'avoir avancé..

Anthooooony
 

chris

XLDnaute Barbatruc
Re : Copier une table vers une autre base Access

Bonjour

Je ne vois pas l'intérêt de toutes ces bases qui ont donc au minimum un dénominateur commun : outre les agences, il doit y avoir un lien, au moins conceptuel, entre clients et fournisseurs qui est la gestion de ta structure...

Éventuellement si l'utilisation est différente, tu peux avoir une base dorsale avec les tables et une ou deux bases frontales avec les formulaires, états, requêtes...

Si les volumes sont très important alors il faut stocker les tables sur un moteur plus robuste (il y en a de gratuits) et ne garder Access que pour l'interface...
 

anthooooony

XLDnaute Occasionnel
Re : Copier une table vers une autre base Access

En faite, nous avons pleins d'outils différents, sap,bo, sidetrade, on extrait chaque mois la base de mois en cours. que ce soit les clients, les fournisseurs, on sur chaque extraction l'entité gestionnaire, et pour avoir le libellé j'utilise la table "agence" exemple EKO = agence Paris = region idf ces entités sont valables pour les clients et fournisseurs

Éventuellement si l'utilisation est différente, tu peux avoir une base dorsale avec les tables et une ou deux bases frontales avec les formulaires, états, requêtes...
j'ai pour chaque base des bases de pret d 1go, nous avons des années à plus de 10 millions de lignes, ce qui gonflent beaucoup les bases, sans compter les requetes, requetes d union. nous n'utilisons pas de formulaire ni etat. En faite on recupere les infos en tcd excel plus maleable que les etats car nos décideurs changent beaucoup d'avis...

Si les volumes sont très important alors il faut stocker les tables sur un moteur plus robuste (il y en a de gratuits) et ne garder Access que pour l'interface...

A quel moteur plus robuste penses tu? je ne suis pas administrateur je pense pas pouvoir l'installer mais bon je pourrais demander qu'on me laisse installer un outil.

Tu me diras surement que gerer autant de ligne sur access n'est pas du tout la bonne solution, mais je ne pense pas qu'on puisse faire autrement que celle la.
La seule idée était ce code pour dispatcher ma table unique vers toutes les autres bases.

merci pour tes retours

Anthooooony
 

chris

XLDnaute Barbatruc
Re : Copier une table vers une autre base Access

Re

Tu peux stocker la table agences dans une base et la mettre en table liée dans les autres. Ainsi une seule source mais en cas de requêtes simultanées, il est probable (je ne suis pas experte) que cela ralentisse.

Concernant les moteurs SGBD gratuits il y a :
  • SQL Server Express : version limitée de SQL Server mais les limites sont supérieures à Access (4Go contre 2 Go)
  • Oracle Database Express : version limitée de Oracle (11 GO mais 1 GO de mémoire)
  • PostgreSQL : quasi illimité
  • MySQL : idem
Dans tous les cas la RAM joue : avec Win 32 bits, la base ne pourra utiliser plus de 2 GO.
Dans les entreprises on a rarement de grosses RAM sur les PC.
Mais si ça passe sur Access, cela devrait passer sur les autres.
 

Discussions similaires

Réponses
0
Affichages
284

Statistiques des forums

Discussions
313 320
Messages
2 097 137
Membres
106 849
dernier inscrit
medf