MS Access для передачи данных MS Access без перезаписи

Быстрый вопрос, предполагая, что у меня есть две базы данных доступа с таблицами с одинаковыми заголовками, как мне добавить данные из DATABASE1_TABLE_A в DATABASE2_TABLE_B с помощью VBA (выполняется из DATABASE1). я попробовал

DoCmd.CopyObject "DATABASE2_DESTINATION", "TABLE_B", acTable, "TABLE_A"

который работает, однако он перезаписывает существующую DATABASE2_TABLE_B, а не добавляет к ней данные. Есть ли другая команда, которая позволяет добавлять данные из одной базы данных доступа в другую без перезаписи существующих данных?

Теоретически я мог бы завершить

DoCmd.TransferDatabase acImport, "Microsoft Access", DATABASE2_DESTINATION", acTable, "TABLE_B", "RANDOM_DB_NAME", False

Затем объедините мою таблицу с переданной таблицей, а затем выполните DoCmd.CopyObject, но похоже, что это очень неэффективный метод решения этой проблемы.

В/Р

Почему бы вам не использовать оператор SQL, например INSERT INTO tblDest IN 'DB.accdb' SELECT tblSource.* FROM tblSource;

Storax 29.04.2023 11:30

Тбх, я не знал, что такой вариант существует. Я был полностью уверен, что создание соединения между двумя базами данных для выполнения SQL. У вас случайно нет хорошего ресурса по использованию SQL между двумя отдельными файлами базы данных?

widofmaker 29.04.2023 11:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если у вас есть две таблицы с одинаковой структурой, вы можете использовать следующий код для выполнения задания.

Sub copyData()

    Dim db As database  ' add reference to DAO library
    Set db = CurrentDb

    Dim sSQL As String
    Dim dbName As String
    dbName = "Path\TargetDB.accdb"

    sSQL = "INSERT INTO tblDest IN '" & _
        dbName & _
        "'SELECT tblData.* FROM tblData;"

    db.Execute sSQL

End Sub

Это сработало как шарм! Спасибо, что открыли мне глаза на новый набор навыков, о которых я даже не подозревал. По какой-то причине я думал, что для выполнения SQL-запросов между двумя файлами мне нужно будет создать соединение ODBC и/или установить Microsoft Access Database Engine. У вас случайно нет хорошей ссылки на использование SQL с MS Access? Большое вам спасибо за вашу помощь.

widofmaker 29.04.2023 11:48

Может быть, этот один поможет. Здесь вы также найдете много хороших статей и советов по Access

Storax 29.04.2023 12:26

Другие вопросы по теме