2009-07-30 8 views
1

J'essaie d'automatiser un processus pour créer une base de données secondaire à partir d'un serveur principal. Les deux DB (MS Access) contiennent une table; la table dans le DB secondaire est un sous-ensemble de la table dans le primaire.Comment copier une table d'un DB d'accès vers un autre DB d'accès

Existe-t-il un moyen simple de copier un jeu d'enregistrements d'une BD à une autre? J'utilise VBScript et ADO.

Merci!

+0

Avez-vous le serveur SQL disponible? –

+0

Est-ce un travail ponctuel? Si vous le pouvez, créez une table de liens à partir de la table de base dans la table Seconday. Le code deviendra alors beaucoup plus simple. – shahkalpesh

+0

Ne pourriez-vous pas simplement copier le fichier? – Tester101

Répondre

0

Vous pouvez exécuter des requêtes d'insertion faisant référence à des fichiers de base de données Access externes (MDB, ACCDB, etc.). Par exemple:

strSQL = "INSERT INTO ServiceRecordInvoices " & _ 
    "(sriID, sriServiceRecordID, sriInvoiceDate, sriInvoiceNumber, " & _ 
           "sriDescription, sriInvoiceAmount) " & _ 
    " IN '" & strDatabasePathandNameTo & "' " & _ 
    "SELECT srpID, srpServiceRecordID, srpInvoiceDate, srpInvoiceNumber, " & _ 
           "srpParts, srpPartsAmount " & _ 
    "FROM ServiceRecordParts IN '" & strDatabasePathandNameFrom & "';" 

Notez les deux variables de chaîne strDatabasePathandNameTo et strDatabasePathandNameFrom. Le code SQL dynamique ci-dessus fonctionnera correctement dans DAO ou ADO.

Si les deux tables sont identiques, vous pouvez utiliser les éléments suivants (non testé):

strSQL = "INSERT INTO ServiceRecordInvoices.* " & _ 
    " IN '" & strDatabasePathandNameTo & "' " & _ 
    "SELECT * " & _ 
    "FROM ServiceRecordParts IN '" & strDatabasePathandNameFrom & "';" 
1

Essayez la méthode CopyObject:

DoCmd.CopyObject "DestinationDatabaseName", "NewName", acTable, "SourceTable"