Как скопировать таблицу из одной базы данных Access в другую базу данных Access

Я пытаюсь автоматизировать процесс создания вторичной базы данных из первичной. Обе БД (MS Access) содержат одну таблицу; таблица во вторичной БД является подмножеством таблицы в первичной.

Есть ли простой способ скопировать набор записей из одной БД в другую? Я использую VBScript и ADO.

Спасибо!


person Community    schedule 30.07.2009    source источник
comment
У вас есть SQL-сервер?   -  person Shiraz Bhaiji    schedule 31.07.2009
comment
Это разовая работа? Если бы вы могли, создайте таблицу ссылок из базовой таблицы во вторую таблицу. Тогда код станет намного проще.   -  person shahkalpeshp    schedule 31.07.2009
comment
Не могли бы вы просто скопировать файл?   -  person Tester101    schedule 31.07.2009


Ответы (2)


Попробуйте метод CopyObject:

DoCmd.CopyObject "DestinationDatabaseName", "NewName", acTable, "SourceTable"
person BIBD    schedule 31.07.2009

Вы можете запускать запросы на вставку, ссылающиеся на внешние файлы файлов базы данных Access (MDB, ACCDB и т. д.). Например:

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

Обратите внимание на две строковые переменные strDatabasePathandNameTo и strDatabasePathandNameFrom. Приведенный выше динамический код SQL будет нормально работать как в DAO, так и в ADO.

Если две таблицы идентичны, вы можете использовать следующее (непроверенное):

strSQL = "INSERT INTO ServiceRecordInvoices.* " & _
    " IN '" & strDatabasePathandNameTo & "' " & _
    "SELECT * " & _
    "FROM ServiceRecordParts IN '" & strDatabasePathandNameFrom & "';"
person Tony Toews    schedule 31.07.2009