объединить таблицы msaccess - PullRequest
0 голосов
/ 29 октября 2009

Как я могу объединить две идентичные таблицы из двух msaccess идентичных БД? Например:

db1..table1
ID   Name
1    Sanjana
2    Parul
3    Rohan

db2...table1
ID     Name
1      Sarika
2      Deepak

Я хочу добавить значения второй таблицы в первую следующим образом:

ID        Name
1         Sanjana
2         Parul
3         Rohan
4         Sarika
5         Deepak

Ответы [ 5 ]

3 голосов
/ 29 октября 2009

Тип данных для поля ID выглядит как автонумерация. Таким образом, вы можете сделать следующее:

INSERT INTO db1...table1
SELECT Name FROM db2...table1
1 голос
/ 29 октября 2009

ОК, вот подход, более подходящий для новичка, использующего графический интерфейс.

  1. Резервное копирование обеих баз данных и их хранение в безопасном месте.

  2. Выполните сжатие и восстановление из меню инструментов в обеих базах данных

  3. Создание связанной таблицы в db1, указывающей на таблицу в db2 Для этого щелкните правой кнопкой мыши на пустом месте в табличном представлении окна базы данных и выберите таблицу ссылок ... Следуйте указаниям мастера, чтобы выбрать db2, а затем выберите table1.

  4. Используйте запрос на добавление, чтобы добавить данные из связанной таблицы1 в db1.table1 Щелкните в представлении запросов Access, создайте новый запрос в режиме конструктора, измените его тип на «Добавить» (щелкните правой кнопкой мыши в свободном месте, где появляются таблицы и перейдите к типу -> добавить). Затем выберите db1.table1, когда появится запрос в качестве таблицы на добавить в. Теперь добавьте связанную таблицу table1 в запрос, выберите поля, из которых вы хотите получить данные (в примере это будет просто Name). Обратите внимание, что вы не хотите перебирать поле id, поскольку его необходимо обновить, чтобы продолжить с того места, где остановился db1.table1, предполагая, что для него задано значение autonumber.

  5. Удалить связанную таблицу из db1

Я не уверен на 100%, что порядок сортировки будет сохранен из db2.table1, когда он будет добавлен в db1.table1, как в вашем примере. В большинстве проектов баз данных это не важно, но если это кто-то другой, может пролить свет - я представляю, что если поле идентификатора в обеих таблицах также является первичным ключом, то оно будет.

1 голос
/ 29 октября 2009

Вы можете использовать запрос на добавление:

INSERT INTO Table1 ( FName ) IN 'c:\docs\ltd.mdb'
SELECT A.FName
FROM A;
0 голосов
/ 30 октября 2009

Если это однократная операция, сработает простое копирование-вставка.

Откройте обе базы данных в MS Access. Откройте обе таблицы. Выберите значения для копирования (щелкните правой кнопкой мыши заголовок столбца и нажмите Ctrl + C).

Перейти к целевой таблице. Поле «Имя» выделено в последнем ряду (новая запись). Для этого наведите курсор мыши на левый край столбца Имя (курсор становится знаком плюс) и щелкните, чтобы выбрать ячейку. Ctrl + V. Готово.

0 голосов
/ 29 октября 2009

Ну, так как это доступ, у вас есть два пути. первое упомянуто LSFR Consulting и второе - использовать мастер импорта и указать импорту игнорировать столбец первичного ключа. Это слило бы данные из db2 в DB1 без столкновения первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...