![]() |
|
Модераторы: Akina |
![]()
|
|
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Karam_S, я в свое время собаку съел с этими импортами.
Нам понадобиться временая таблица, которая будет содержать текстовые поля из Excel файла и кодовые поля, для значений из справочников. Алгоритм: 1. Импортируется файл во временную таблицу. 2. По справочникам ищутся текстоввые значения и им проставляются соответсвующие id-и. 3. Не обработанные текстовые значения либо добавляются в справочники автоматически, либо отдаются на откуп пользователя. 4. Проверка дубликатов в сущесвующей бд и запрос у пользователя что с ними делать. 5. Копирвоание данных из верменной таблицы в постоянную. Вот и все. |
|||
|
||||
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2008 Где: г. Новокузнецк Репутация: нет Всего: нет |
bopoha,
спасибо, общая идея понятна. Не совсем понял как выполнить 2-й пункт. Например, есть таблицы "Авторы" и "Журналы", у них общие поля "Авторы.ИД" (счётчик) и "Журналы.ИДАвтора". Допустим, в таблице "Авторы" есть 5 записей. Теперь нужно проставить Номера во временной таблице в поле ИД, начиная с 6-ки. Это делать вручную? Для выполнения 3-го пункта предполагаю использовать запрос на добавление, это правильно? Также прошу пояснить 4-й пункт: какую таблицу проверять, временную или существующую, или сравнивать записи между временной и существующей? И я ещё не дошёл |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
||||
|
||||
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2008 Где: г. Новокузнецк Репутация: нет Всего: нет |
Итак во временной таблице создаю поле идАвтора.
Прошу пояснить с помощью какого запроса можно заполнить значения этого поля, начиная, например, с "6"? Также прошу пояснить с помощью какой опции можно сравнить содержимое определённых полей между временной и существующей таблицами? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Если потом на эту таблицу натравить Аксессовский мастер анализа таблиц - он тебе посоветует, что сделать, и сделает то, на что ты дашь добро... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Неужели? Анализатор атблиц посоветует индексы добавить и привести к 3-ей форме, если я не ошибаюсь.
См. запросы на обновления.
Опять же запрос, который вернет похожие записи. см. мастер запросов, там есть такой тип зпросов. |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
ТС больше и не требуется. Это сообщение отредактировал(а) Akina - 22.1.2010, 14:34 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2008 Где: г. Новокузнецк Репутация: нет Всего: нет |
Akina, bopoha,
Спасибо за советы! На выходных буду пробовать, что получиться отпишу. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |