Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Импорт из Exel с сохранением связей, из одной таблицы в связанные таблицы  
:(
    Опции темы
Karam_S
Дата 16.1.2010, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



Такая проблема уже поднималась здесь, но не получила разрешения.
У меня следующая ситуация.

Есть таблица Exel, где собраны записи об опубликованных статьях в журналах за разные годы.
Столбцы: фамилия 1, фамилия 2, фамилия 3, название статьи, название журнала, год, номер, раздел, тема.
 
Создал базу Access, где данные распределил по 3-м таблицам:
Авторы, Журналы, Статьи.
Связал их как показано на прилагаемом рисунке.

Не знаю (и не нашёл ответа), как организовать умный импорт из Exel с сохранением связей данных.
Стандартный способ импорта копирует записи в одну таблицу.

Хотелось бы организовать импорт так, чтобы:
1. данные из столбцов "фамилия 1" скопировались в таблицу "Авторы"; "название статьи" - "Статьи"; "название журнала" - "Журналы"...
2. новые записи из таблиц Авторы, Журналы, Статьи были увязаны друг с другом по ключевым полям. 

Есть версия. Указанный импорт начать с того, чтобы явно задать в таблице Exel номерацию строк и использовать в качестве id, который копировать в каждую из таблиц.
Но в этом решении есть другая проблема - при подготовке множества таблиц Exel нужно будет следить, чтобы номера строк не совпадали.
В общем, прошу помощи. 

Это сообщение отредактировал(а) Karam_S - 16.1.2010, 14:48

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Strukture_bdJurnal.jpg 35,57 Kb
PM MAIL ICQ   Вверх
bopoha
Дата 16.1.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Karam_S, я в свое время собаку съел с этими импортами.

Нам понадобиться временая таблица, которая будет содержать текстовые поля из Excel файла и кодовые поля, для значений из справочников.

Алгоритм:
1. Импортируется файл во временную таблицу.
2. По справочникам ищутся текстоввые значения и им проставляются соответсвующие id-и.
3. Не обработанные текстовые значения либо добавляются в справочники автоматически, либо отдаются на откуп пользователя.
4. Проверка дубликатов в сущесвующей бд и запрос у пользователя что с ними делать.
5. Копирвоание данных из верменной таблицы в постоянную.

Вот и все.
PM MAIL WWW ICQ Skype GTalk   Вверх
Karam_S
Дата 16.1.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



bopoha,
спасибо, общая идея понятна. smile 

Не совсем понял как выполнить 2-й пункт.
Например, есть таблицы "Авторы" и "Журналы", у них общие поля "Авторы.ИД" (счётчик) и "Журналы.ИДАвтора".
Допустим, в таблице "Авторы" есть 5 записей. 
Теперь нужно проставить Номера во временной таблице в поле ИД, начиная с 6-ки. Это делать вручную?

Для выполнения 3-го пункта предполагаю использовать запрос на добавление, это правильно?

Также прошу пояснить 4-й пункт: какую таблицу проверять, временную или существующую, или сравнивать записи между временной и существующей? 
И я ещё не дошёл  smile , какая есть для этого опция?
PM MAIL ICQ   Вверх
bopoha
Дата 18.1.2010, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Karam_S @  16.1.2010,  16:24 Найти цитируемый пост)
Номера во временной таблице в поле ИД

уж лучше идАвтора назвать.

Цитата(Karam_S @  16.1.2010,  16:24 Найти цитируемый пост)
Это делать вручную?

Программно выполнить запрос.


Цитата(Karam_S @  16.1.2010,  16:24 Найти цитируемый пост)

Для выполнения 3-го пункта предполагаю использовать запрос на добавление, это правильно?

Смотрите по вашей ситуации. Очень часто приходят наименования с ошибками.

Цитата(Karam_S @  16.1.2010,  16:24 Найти цитируемый пост)
сравнивать записи между временной и существующей? 

Вот это.

Цитата(Karam_S @  16.1.2010,  16:24 Найти цитируемый пост)
И я ещё не дошёл  smile , какая есть для этого опция? 

Для чего?
PM MAIL WWW ICQ Skype GTalk   Вверх
Karam_S
Дата 20.1.2010, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



Итак во временной таблице создаю поле идАвтора.
Прошу пояснить с помощью какого запроса можно заполнить значения этого поля, начиная, например, с "6"?
Также прошу пояснить с помощью какой опции можно сравнить содержимое определённых полей между временной и существующей таблицами?
PM MAIL ICQ   Вверх
Akina
Дата 20.1.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Karam_S @  16.1.2010,  15:47 Найти цитируемый пост)
Не знаю (и не нашёл ответа), как организовать умный импорт из Exel с сохранением связей данных.
Стандартный способ импорта копирует записи в одну таблицу.

Если потом на эту таблицу натравить Аксессовский мастер анализа таблиц - он тебе посоветует, что сделать, и сделает то, на что ты дашь добро...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 22.1.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Akina @  20.1.2010,  18:06 Найти цитируемый пост)
Если потом на эту таблицу натравить Аксессовский мастер анализа таблиц 

Неужели? Анализатор атблиц посоветует индексы добавить и привести к 3-ей форме, если я не ошибаюсь.


Цитата(Karam_S @  20.1.2010,  17:44 Найти цитируемый пост)
Прошу пояснить с помощью какого запроса можно заполнить значения этого поля, начиная, например, с "6"?

См. запросы на обновления.

Цитата(Karam_S @  20.1.2010,  17:44 Найти цитируемый пост)
Также прошу пояснить с помощью какой опции можно сравнить содержимое определённых полей между временной и существующей таблицами? 

Опять же запрос, который вернет похожие записи. см. мастер запросов, там есть такой тип зпросов.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 22.1.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(bopoha @  22.1.2010,  13:28 Найти цитируемый пост)
 Анализатор атблиц посоветует индексы добавить и привести к 3-ей форме, если я не ошибаюсь.

ТС больше и не требуется.

Это сообщение отредактировал(а) Akina - 22.1.2010, 14:34


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Karam_S
Дата 22.1.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.2.2008
Где: г. Новокузнецк

Репутация: нет
Всего: нет



Akina, bopoha, 
Спасибо за советы! На выходных буду пробовать, что получиться отпишу.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.