XL Access:copier une table d'une base dans une autre

Christian22

XLDnaute Junior
Bonjour à tous,

j'ai besoin de recopier régulièrement des tables d'une base A vers une base B: je recopie la structure et les données.

Avez vous un exemple de code pour cette manipulation?
Petite précision: je pilote cette recopie à l'intérieur d'un programme VBA Excel, j'ai essayé avec DoCmd.CopyObject mais je ne m'en sors pas!

Cordialement,

Christian
 
Dernière édition:

PMO2

XLDnaute Accro
Re : XL Access:copier une table d'une base dans une autre

Bonjour,

Une piste avec l'exemple suivant

1) Créez une base Access bd1.mdb et, dans celle-ci, une table tblSource
2) créez une base Access bd2.mdb qui sera la base de destination
3) mettez ces 2 bases dans C:\
4) dans Excel, copiez le code suivant

Code:
''menu Outils/Références... : Library Access
''C:\Program Files\Microsoft Office\OFFICE11\MSACC.OLB
''Microsoft Access 11.0 Object Library

Const MA_SOURCE As String = "C:\bd1.mdb"
Const MA_DESTINATION As String = "C:\bd2.mdb"
Const MA_TABLE As String = "tblSource"

Sub CopieTblMdb2Mdb()
Dim myApp As Object 'Access.Application
Set myApp = CreateObject("Access.Application")
With myApp
    '°°° Désactive le "Security warning" °°°
  .AutomationSecurity = 1    'msoAutomationSecurityLow
    '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  .OpenCurrentDatabase filepath:=MA_SOURCE
    '--- (SourceObjectType:=0)  0 = acTable ---
  .DoCmd.CopyObject _
        DestinationDatabase:=MA_DESTINATION, _
        NewName:="copie_" & MA_TABLE, _
        SourceObjectType:=0, _
        SourceObjectName:=MA_TABLE
  .CloseCurrentDatabase
End With
Set myApp = Nothing
End Sub

Lancez la macro CopieTblMdb2Mdb puis ouvrez la base bd2.mdb dans laquelle devrait
figurer une copie de tblSource.

Par la suite, adaptez les constantes selon votre usage.

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 582
Membres
103 247
dernier inscrit
bottxok