Использование буфера обмена Windows для импорта и экспорта данных
При добавлении в таблицу Access 2002 данных с помощью буфера обмена Windows могут возникнуть ошибки по одной из двух причин:
- типы данных ячеек Excel не соответствуют типам данных полей таблицы Access;
- в первичном ключе добавляемых записей содержатся значения, которые уже есть в таблице Access.
В любом случае Access 2000 создаст таблицу "Ошибки вставки" (Paste Errors) и запишет в нее все записи, вызвавшие ошибки. Использование таблицы "Ошибки вставки" аналогично использованию таблицы ошибок импорта данных, описанной ранее в этой главе.
Ошибки, вызванные наличием повторяющихся значений в первичном ключе таблицы Access 2002, приводят к появлению на экране диалоговых окон с сообщениями об ошибках. Читая сообщения в этих окнах, вы можете получить более подробную информацию о каждой ошибке, если нажмете кнопку Справка (Help), можете запретить вывод дальнейших сообщений об ошибках, а можете просто прервать процесс добавления записей. В любом случае все ошибки будут зафиксированы в таблице "Ошибки вставки" (на рис. 3.47 приведена таблица, которая была получена при повторной вставке в базу данных шести уже имеющихся в ней записей).
После завершения добавления записей в таблицу появится сообщение о том; что записи, которые не удалось добавить из буфера обмена, помещены в таблицу "Ошибки вставки".
Рис. 3.47. Таблица "Ошибки вставки"
Совет
Если в процессе вставки выдается много сообщений об ошибках, вызванных повторяющимися значениями в ключевом поле, лучше прервать этот процесс (реальная вставка записей происходит только после подтверждения в конце процесса), найти записи с повторяющимися значениями, исправить их и заново выполнить процесс вставки. Для того чтобы быстро найти повторяющиеся данные, можно выполнить запрос специального вида – "Повторяющиеся записи". Раскройте список запросов в окне базы данных, нажмите кнопку Создать (New), в появившемся диалоговом окне Новый запрос (New Query) выделите элемент Повторяющиеся записи (Find Duplicates Query Wizard) и нажмите кнопку ОК. (Более подробно о создании запросов см. гл. 4.)
Замечание
Если записи вставляются в таблицу, ключом которой является поле типа Счетчик (AutoNumber), то при добавлении новых записей они перенумеровываются в соответствии с последним значением счетчика. То есть даже если значения этого поля в добавляемых записях будут совпадать с ключами в уже существующих записях, они будут вставлены, при этом значения ключей в новых записях будут отличаться от тех, что они имели до вставки.
Access позволяет не только добавить в таблицу записи из буфера обмена, но и заменить уже существующие в таблице записи. При этом все столбцы данных, скопированные в буфер обмена, должны соответствовать полям таблицы Access, причем первый столбец обязательно должен соответствовать первому полю. Однако в буфере обмена могут быть не все столбцы таблицы Access. В этом случае данные в полях таблицы, для которых отсутствуют столбцы в буфере обмена, останутся неизменными. А вот число строк в буфере обмена должно соответствовать числу выделенных заменяемых строк в таблице. Это число не должно быть меньше, чем число строк в буфере. В противном случае данные из последних строк буфера будут игнорироваться. Процедура замены записей аналогична описанной выше процедуре добавления записей, только перед вставкой нужно выделить заменяемые записи в таблице.