На профессиональном уровне
Опасность дубликатов
Если в процессе импорта записи добавляются в существующую таблицу (добавляются в конец таблицы), вас подстерегает опасность, самый ужасный ночной кошмар любого импортера, — дублирование.
Все очень просто — у программы Access нет способа сообщить о том, импортировались ли эти данные ранее или нет. Если вы установили в программе Access автоматическое заполнение в каждой записи значения Код(ID) с типом Счетчик, она запросто может вставить одни и те же данные несколько раз, каждый раз задавая другое значение поля Код (ID). С другой стороны, если не использовать автоматически генерируемые значения в поле Код(ID), а импортируемые данные содержат первичный ключ, программа Access вообще не сможет импортировать новые данные. Ясно, что оба варианта далеки от идеала.
Если вы связаны с импортом надолго, единственное решение — быть внимательным. Далее приведено несколько советов.
• Если вы хотите повторно использовать файл после того, как вы уже импортировали содержащиеся в нем данные, убедитесь в том, что вы удалили из файла всю информацию, импортированную ранее.
• Если вам кажется, что вы могли импортировать одни и те же данные дважды, примените для проверки запрос. Можно создать собственный запрос или использовать запрос типа Повторяющиеся записи(Find Duplicates), создаваемый Мастером запросов (см. разд. "Создание простого запроса с помощью Мастера запросов" главы 6).
• Лучше чаще вносить мелкие изменения, чем реже выполнять более крупные обновления. В этом случае вы быстрее и гораздо легче обнаружите ошибки.
• Если вам нужно более надежное решение, необходимо создать его самостоятельно. Можно воспользоваться программным кодом на Visual Basic для того, чтобы управлять способом передачи данных в программе Access (вас ждет много дополнительной работы).
Импорт из файла Excel
Для импорта из файла Excel данные должны быть организованы в базовую таблицу. В идеале заголовки столбцов этой таблицы должны совпадать с именами полей в вашей БД. Нужно удалить любые данные, которые вы не хотите импортировать (как и ячейки под таблицей, не входящие в нее). Необходимо также удалить значения, вычисляемые с помощью формул Excel. (Как вы узнали из разд. "Правило 5. Избегайте избыточной информации" главы 5, в таблице не следует хранить вычисляемые значения, поскольку они повышают риск возникновения противоречивых данных.)
Примечание
Ранее в этой главе вы узнали, как обычным образом вырезать данные Excel и вставить их в таблицу Access. Но когда выполняется полнофункциональный импорт, у вас появляется возможность изменить имена полей, настроить типы данных и применить индексирование.
После того как таблица данных в файле Excel вычищена, вы готовы к запуску операции импорта.
1. Выберите на ленте Внешние данные → Импорт → Excel(External Data → Import → Excel) и задайте способ вставки импортируемой информации в вашу БД. Затем щелкните мышью кнопку ОК.
Вы узнали, как выбрать способ вставки данных в пунктах 1—3 в предыдущем разделе.
2. Выберите рабочую книгу Excel, в которой содержатся ваши данные (рис. 19.5).
Файлы или рабочие книги Excel вначале обычно состоят из трех листов. Большинство пользователей плюхают свои данные на первый из них, который первоначально назван Лист1(Sheetl). Если вы хорошо знакомы с программой Excel, возможно, вы обозначили как именованный диапазон некоторую область в более сложной таблице. Если так, ваш именованный диапазон можно выбрать из предлагаемого списка.
Рис. 19.5.Этот файл рабочей книги Excel содержит три стандартных листа: Лист1, Лист2и Лист3.
Когда данные выделены, их можно увидеть на экране в области предварительного просмотра
3. Щелкните мышью кнопку Далее.
4. Если первая строка ваших данных Excel содержит заголовки, выберите Первая строка содержит заголовки столбцов(First Row Contains Column Headings).
Эти заголовки станут отправной точкой для именования ваших полей. Если не выбрать вариант Первая строка содержит заголовки столбцов,программа Excel интерпретирует первую строку как обычную запись.
5. Щелкните мышью кнопку Далее.
Если для импортируемых записей создается новая таблица, программа Access попросит более точно определить создаваемые поля. Если записи добавляются в существующую таблицу, переходите к пункту 7.
6. Для каждого поля можно выбрать имя, тип данных и наличие или отсутствие индексирования. Затем щелкните мышью кнопку Далее.
Программа Access строит кое-какие догадки, основываясь на полученных данных, но тонкая настройка деталей целиком лежит на вас (рис. 19.6).
Рис. 19.6. Для определения поля выберите его в области предварительного просмотра и затем задайте параметры. Если вы решили совсем не импортировать поле, установите флажок не импортировать (пропустить) поле(обведен), чтобы полностью его игнорировать
7. Решите, хотите ли вы, чтобы программа Access создала первичный ключ.
Выберите вариант автоматически создать ключ(Let Access add primary key) для создания поля Код(ID) с типом Счетчик(что всегда хорошая мысль). Если импортируемые данные уже содержат поле, которое вы хотите использовать как ключ, выберите вариант определить ключ(Choose my own primary key) и затем укажите нужное поле.
8. В текстовое поле Импорт в таблицу(Import to Table) введите имя таблицы, которую хотите создать или в которую хотите добавить записи.
9. Для завершения выбора нажмите кнопку Готово(Finish).
После завершения импорта можно выбрать вариант сохранения шагов этой операции для повторного ее использования.
При импорте данных из Excel могут обнаружиться потенциально ошибочные блоки. Пустые значения и поля — самая распространенная проблема, когда мастер импорта принимает за данные часть электронной таблицы, не содержащей никакой информации. (Это может произойти, если где-то в электронной таблице есть ячейка, содержащая просто пробел или использовавшаяся для хранения данных, которые с тех пор были уже удалены.) После выполнения импорта для устранения подобных проблем, возможно, придется почистить таблицу, удалив пустые поля и записи.