powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Одновременное добавление в связанные таблицы 1-ко-многим
9 сообщений из 9, страница 1 из 1
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761458
Camel100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый всем день!

Опять, наверняка, сто раз обсуждавшийся вопрос,
но что-то никак не выходит...

Имеется: большая таблица Main и много связанных с ней 1 - много таблиц с установленными referential integrity:
Main: Id_main
поле1
поле2
поле3


Список1 Id
-----> Id_main
1
2
5

Список 2
Id
---------> Id_main
10
12
13

И так далее.

Имеется большая импортированная таблица Import с кучей полей
поле1, поле2, поле3, 1,2,5,10,12,13 и тд.

Как написать одновременный импорт всех этих полей в систему связанных таблиц?

Заранее спасибо, Camel
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761477
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сверху вниз ,т.е.
сначала 1 ,потом ко многим
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761486
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно самый простой вариант:
добаляешь в таблицу Import поле ID_main типа Autonumber

затем
Код: plaintext
1.
2.
3.
4.
 INSERT INTO Main(Id_main,поле1, поле2, поле3) SELECT id_main,поле1, поле2, поле3 FROM Import

 INSERT INTO Список1 (Id_main, 1 , 2 , 5 ) SELECT ID_main, 1 , 2 , 3  FROM Import
 
 INSERT INTO Список2 (Id_main, 1 , 2 , 5 ) SELECT ID_main, 1 , 2 , 3  FROM Import

и т.д и т.п
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761489
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
INSERT INTO Список2 (Id_main, 10 , 12 , 13 ) SELECT ID_main, 10 , 12 , 13  FROM Import
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761492
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правда таблица Main должна быть пустой
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761525
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копию удалил.

2 автор
Уточнения к вопросу лучше складывать в первоначальный топик.
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761531
Camel100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhardсверху вниз ,т.е.
сначала 1 ,потом ко многим
Так ведь не даст он сначала к главной добавить - будет нарушение целостности из-за того, что в таблицах "многие" нет еще соотв. записей!

Kelmeправда таблица Main должна быть пустой
Она не пуста, этот импорт много раз должен проводиться. Кстати, предыдущие
INSERT's в одном Query могут находиться?

Как, кстати, удалить ошибочно посланное в форум сообщение? А то у меня дубль выскочил...
Camel
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761558
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
. Кстати, предыдущие
INSERT's в одном Query могут находиться?


нет


если на VBA, то можно примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
dim rstImport as DAO.Recordset
dim rstMain as DAO.Recordset
dim List1 as DAO.Recordset
dim List2 as DAO.Recordet
dim ID as long
 set rstImport = CurrentDb.Openrecordset("Import")
 set rstMain = currentdb.Openrecordset("Main")
 set rstList1 = currentdb.OpenRecordset("List1")
 set rstList2 = currentdb.OpenRecordset("List2")
 do while not rstImport.EOF
  rstMain.AddNew
   rstMain!field1 = rstImport!field1
   ...
   id = rstMain!ID_main
  rstMain.Update
  rstList1.Addnew
   rstList1!id_main = id
   rstList1! 1  = rstImport! 1 
   ...
  rstList1.Update

  rstList2.Addnew
   rstList2!id_main = id
   rstList2! 10  = rstImport! 10 
   ...
  rstList1.Update
 
  rstImport.MoveNext
 loop
...
Рейтинг: 0 / 0
Одновременное добавление в связанные таблицы 1-ко-многим
    #32761737
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Так ведь не даст он сначала к главной добавить - будет нарушение целостности из-за того, что в таблицах "многие" нет еще соотв. записей!

даст конечно - попробуй!
нельзя вставить со стороны многих запись,не имеющую соответствующей со стороны 1
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Одновременное добавление в связанные таблицы 1-ко-многим
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]