Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Одновременное добавление в связанные таблицы 1-ко-многим / 9 сообщений из 9, страница 1 из 1
29.10.2004, 16:35:01
    #32761458
Camel100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
Добрый всем день!

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

Имеется: большая таблица 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
29.10.2004, 16:41:55
    #32761477
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
сверху вниз ,т.е.
сначала 1 ,потом ко многим
...
Рейтинг: 0 / 0
29.10.2004, 16:46:30
    #32761486
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
Наверно самый простой вариант:
добаляешь в таблицу 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
29.10.2004, 16:47:36
    #32761489
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
Код: plaintext
INSERT INTO Список2 (Id_main, 10 , 12 , 13 ) SELECT ID_main, 10 , 12 , 13  FROM Import
...
Рейтинг: 0 / 0
29.10.2004, 16:48:26
    #32761492
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
правда таблица Main должна быть пустой
...
Рейтинг: 0 / 0
29.10.2004, 17:07:26
    #32761525
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
Копию удалил.

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

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

Как, кстати, удалить ошибочно посланное в форум сообщение? А то у меня дубль выскочил...
Camel
...
Рейтинг: 0 / 0
29.10.2004, 17:23:27
    #32761558
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
автор
. Кстати, предыдущие
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
29.10.2004, 18:47:32
    #32761737
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременное добавление в связанные таблицы 1-ко-многим
автор
Так ведь не даст он сначала к главной добавить - будет нарушение целостности из-за того, что в таблицах "многие" нет еще соотв. записей!

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


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