Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
Скачать 19.64 Mb.
|
Глава 19 Импорт и экспорт данных БД Access напоминает тщательно построенный форт. Он берет строго организованную и проверенную на наличие ошибок информацию и умело блокирует ее. Очень немногие программы охраняют свои данные такой броней, как программа управления БД. Текстовые процессоры и программы обработки электронных таблиц принимают почти любое содержимое и позволяют на лету формировать структуру документа. БД далеко не так раскованы. Большую часть времени БД живут в независимом мире. Но время от времени всем приходится одним из указанных далее способов преодолевать разрыв:
Для преобразования данных у программы Access есть несколько разных средств. Можно использовать непритязательный буфер, сложные средства импорта и экспорта или неизменно популярный XML-стандарт. В этой главе вы узнаете обо всех имеющихся в вашем распоряжении вариантах, включая один новый и очень искусный метод, позволяющий пользователям послать по электронной почте их обновления для вашей БД. Это уже не та программа Access, с которой работали ваши отцы. Аргументы в пользу экспорта и импорта Если вы не слишком задумывались об импорте и экспорте, значит, пока они вам не очень были нужны. Многие БД вполне счастливы, живя тихой уединенной жизнью. Но импорт и экспорт могут пригодиться в некоторых ситуациях. Рано или поздно вы можете оказаться в одной из них. Что такое экспорт Экспорт — более легкая составляющая уравнения. Операция экспорта проще операции импорта, поскольку она включает перенос информации из строго организованного расположения (БД) в менее строгое (документ другого типа). Примечание Экспорт — метод передачи ваших данных в другое место. Исходная копия всегда остается в Access. Нет никакого резона изменять экспортированную копию. Если нужны изменения, внесите их в БД, а затем выполните операцию экспорта еще раз. Далее перечислены самые частые причины, заставляющие пользователей экспортировать информацию.
Подсказка Программа Access хранит огромные объемы информации, и часто другие программы просто не могут их обработать. Вы никогда не сможете скопировать таблицу в презентацию PowerPoint — в лучшем случае слайд сможет вместить лишь горстку записей. Но можно показать результаты сводного запроса (см. разд. "Итоговые данные" главы 7), в котором применяется группировка для получения результатов в виде нескольких промежуточных итогов. ■ Вы хотите анализировать данные в программе Excel. Программа Access отлично подходит для хранения ваших данных и управления ими, но она не предоставляет средств, помогающих понять, что все это значит. Если вы хотите спрессовать данные с помощью тяжеловесных рабочих формул и воспользоваться средствами построения диаграмм, есть смысл перенести данные в программу Excel. Некоторые программы обладают интеллектом, достаточным для того, чтобы извлечь данные из БД Access самостоятельно. Например, программа Word, у которой есть средство слияния сообщений электронной почты, позволяющее взять список имен и адресов из БД и затем использовать их для создания почтовых наклеек, персонифицированных форм и разного рода групповых документов. Для применения этого средства не нужен экспорт — достаточно указать в программе Word на файл вашей БД Access. Что такое импорт Импорт всегда нужен, если есть данные за пределами БД, которые являются ее составляющей. Допустим, вы создаете самую современную БД электронной коммерции для вашей фермы по разведению бизонов. Но некоторые ваши торговые партнеры все еще заполняют формы с помощью старинной электронной таблицы Excel. Вам понадобятся средства для извлечения данных из электронной таблицы Excel и переноса их в вашу БД. Подсказка Ваш торговый персонал вас подвел. Им не следовало вводить данные в документ, предназначенный для другой программы. Они должны были бы использовать форму, которая разработана для регистрации продаж, как описано в главе 12. Импорт информации связан с двумя ключевыми проблемами. Первая — обеспечение соответствия данных строгим требованиям БД. Как вы узнали в главе 1, БД помешаны на правилах и грубо отбрасывают неподходящие данные (например, текст в поле для даты). Вторая трудность — обработка информации, которая не полностью соответствует, — другими словами, ее представление в БД не соответствует ее представлению во внешнем документе. Эта проблема гораздо распространеннее, чем можно было бы предположить. В вашей БД могут применяться коды статуса (например, 4302), а в электронной таблице, которую вы хотите импортировать, используются именованные константы (например, High Priority). Или же нужно разделить импортируемую информацию на несколько связанных таблиц, несмотря на то, что она хранится в едином документе. Электронная таблица с заказами клиентов для вашей фермы по разведению бизонов могла включать сведения о клиентах (которые относятся к таблице Customers) и данные о заказах (для таблицы Orders). К несчастью, нет легких способов решения подобных проблем. Если данные точно не соответствуют представлению в БД, придется исправлять их вручную до или после операции импорта. Специалисты иногда пытаются решить проблемы, подобные описанным, с помощью программ на Visual Basic, которые читают данные и создают соответствующие записи. (Для этого вам придется использовать объекты DAO, описанные в разд. "Обновление единиц наличного запаса" главы 17.) Несмотря на то, что программный подход чрезвычайно гибок, написание кода и его сопровождение быстро превращается в кошмар, поэтому старайтесь избегать его применения изо всех сил. SQL Server и SharePoint: два частных случая В этой главе не будут рассматриваться две программы. SQL Server — программное обеспечение для создания мощной серверной БД, которое описывается в главе 20. Если ваша БД Access разрастается экспоненциально, вы можете попробовать перенести ваши данные на SQL Server. Но для этого не применяется стандартное средство экспорта. У программы Access есть специальное средство преобразования, которое поможет вам в этом случае. Вы узнаете о нем в главе 20. SharePoint — другой программный серверный продукт промышленного уровня, который хранит большие объемы данных. Но в отличие от SQL Server, SharePoint разработан для того, чтобы помочь группам пользователей совместно использовать информацию и взаимодействовать друг с другом с помощью внутренних сетей или Web-пространства. Если вы захотите перенести данные в список SharePoint (или из него), придется заглянуть в главу 21. Применение буфера обмена Любой, кто проводит много времени за компьютером, знаком с буфером обмена — скрытым контейнером, который временно хранит данные, давая возможность переносить их из одной программы в другую. С помощью буфера обмена можно скопировать фрагмент текста в документе Word и затем вставить его в поле таблицы Access или наоборот. Это довольно легко, но, возможно, вы не задумывались о том, что можно скопировать целую таблицу с данными. Подсказка Почти все Windows-программы применяют одни и те же комбинации обмена клавиш для работы с буфером. Используйте комбинацию клавиш Прежде чем проверить комбинации клавиш на практике, следует понять два ключевых факта, касающихся буфера обмена.
Эта гибкость — главный секрет передачи данных из программы Access и в нее. В следующих разделах объясняется, как это делается. Примечание Применение буфера обмена — более простой метод, чем операции импорта и экспорта программы Access. В результате это более быстрый вариант (состоящий из нескольких шагов). Конечно, он предоставляет меньше возможностей, да и работает не со всеми программами. Копирование таблицы из программы Access Программа Access позволяет копировать набор строк или целую таблицу в другую программу без применения мастера экспорта. Access копирует выбранные строки в буфер обмена как объект с развитой логикой, способный преобразовать себя в разные программные форматы. Его можно вставить как ячейки Excel, HTML-текст (язык форматирования, применяемый в Web-пространстве) или RTF-документ (стандарт форматирования, разработанный корпорацией Microsoft и поддерживаемый основными текстовыми процессорами). I Поскольку форматы HTML и RTF поддерживаются многими программами, у вас практически никогда не будет проблем при копировании данных в другую программу с их помощью. Вот как это делается. 1. Если нужно скопировать целую таблицу, выделите ее в области переходов. Если хотите скопировать только несколько строк, выделите их в Режиме таблицы, как показано на рис. 19.1. Вы не ограничены копированием только таблиц. Можно скопировать результаты запроса. Просто выделите запрос в области переходов. Но формы или отчеты скопировать не удастся. При копировании строк или всей таблицы программа Access учитывает параметры скрытия столбцов (см. разд. "Скрытие столбцов" главы 3). Если вы скрыли столбец, чтобы он не отображался на листе данных (с помощью его выделения и последующего выбора команд Главная → Записи → Дополнительно → Скрыть столбцы (Home → Records → More →Hide Columns)), Access не будет копировать его в буфер обмена. Этот прием помогает отбросить данные, которые вы не хотите копировать. Рис. 19.1. При выделении строк на листе данных щелкните мышью серый отступ слева у первой из строк, которые хотите выделить. Далее с нажатой кнопкой мыши сместите ее указатель вниз для выделения нужного числа строк. Если не хотите отрывать руку от мыши, можно скопировать их, если нажать и удерживать клавишу Примечание Можно скопировать лишь непрерывную область выделения, что означает возможность копирования только смежных строк, расположенных рядом друг с другом. Если в вашей таблице 10 строк, можно скопировать строки с третьей по шестую, но нельзя скопировать первую и последнюю строки. (Конечно, можно копировать более мелкими порциями, чтобы скопировать оторванные от общего выделения строки.) 2. Нажмите комбинацию клавиш Это действие помещает строки в буфер обмена ОС Windows. Теперь их можно вставить в программу Access или другую программу.
Программа Access вставляет выделенные вами строки, снабжая их заголовками. Если на листе данных применялось форматирование (см. разд. "Форматирование листа данных" главы 3), большая его часть переносится. В некоторых программах, в которые вставляются записи, можно увидеть пиктограмму смарт-тега, появляющуюся в правом углу только что вставленного содержимого. В приложениях пакета Office можно применять этот смарт-тег для изменения параметров вставки данных (например, с форматированием или без). Примечание Копировать текст, числа и даты легко. Но данные некоторых типов плохо поддаются переносу. Если скопировать поле типа Вложение, во вставленном контенте отобразится число вложений, но сами файлы будут отсутствовать. Рис. 19.2. С помощью копирования или вырезания можно преобразовать таблицу БД в таблицу документа Word, показанную здесь. После вставки содержимого, возможно, придется подкорректировать ширину столбцов, для того чтобы все выглядело как следует Сберегающая время подсказка. Копирование из одной БД в другую Способ копирования, описанный только что, можно применить для копирования данных из одной БД Access в другую БД Access, которая открыта в отдельном окне. Но этот прием сработает, только если копируется вся таблица (или другой объект), а не набор строк. Для опробования данного способа в области переходов щелкните правой кнопкой мыши нужный вам объект и затем выберите команду Вставить (Paste). Access запросит имя вставляемой таблицы и предложит три варианта вставки.
Описанный прием позволяет создать дубль таблицы (или другого объекта) в той же самой базе. Копирование ячеек из Excel в Access Скопировать данные из программы Access в другую программу достаточно легко, но вы, вероятно, не рассчитываете на то, что можно выполнить и обратный процесс. Помимо всего прочего БД — это жесткая, строго структурированная коллекция данных. Если попытаться скопировать таблицу из программы текстового процессора, вы столкнетесь с отсутствием жизненно важной информации, например типов данных для каждого столбца. По этой причине Access не разрешит вставку. Но для столь любимой всеми программы Excel Access делает исключение. Можно скопировать набор ячеек в Excel и затем вставить их в программу Access для создания новой таблицы. Эта процедура действует, потому что Excel различает данные разных типов (хотя она далеко не так придирчива, как Access). Например, Excel по-разному трактует числа, даты, текст и логические значения. Вот как действует этот метод. 1. В программе Excel выделите ячейки, которые хотите скопировать. Если у электронной таблицы есть заголовки столбцов, включите их в область выделения. Программа Access сможет использовать их как имена полей. Примечание Неважно, какая у вас версия Excel — этот метод действует во всех версиях программы.
Программа Access заметит, что вы пытаетесь вставить группу ячеек Excel, и попытается преобразовать их в таблицу. Сначала она поинтересуется, содержатся ли в первой строке области выделения заголовки столбцов. 5. Если в пункте 1 вы выделили заголовки, щелкните кнопку Да, в противном случае Нет. Если выбран вариант Да, программе Access не нужно создавать случайные имена полей — она может использовать ваши заголовки. Access создает новую таблицу для работы с новыми данными. Эта таблица названа так же, как таблица Excel. Если у таблицы имя листа Лист1 (Sheetl) (как у большинства таблиц Excel), теперь у вас есть таблица Лист1. Когда Access закончит вставку, программа выведет на экран подтверждающее сообщение, дающее знать, что все завершилось успешно. 6. Щелкните мышью кнопку ОК. Теперь можно проверить таблицу, чтобы убедиться в том, что типы данных и имена полей такие, как вы хотели. Операции импорта и экспорта Несмотря на то, что метод применения буфера с командами вырезания и вставки очень удобен, он не всегда решает задачу. Если нужно экспортировать данные в файл, а на вашем компьютере не установлена соответствующая программа (или вы просто не хотите суетиться и запускать ее), необходим другой способ передачи ваших данных. Подобным образом, если вы загружаете данные из Всемирной паутины или извлекаете информацию из программы, не поддерживающей метод ОС Windows вырезания и вставки, вам потребуется полнофункциональное средство импорта программы Access. К огда корпорация Microsoft разрабатывала программу Access 2007, было потрачено много времени на то, чтобы сделать средства импорта и экспорта яснее и понятнее. Теперь вы можете выполнять все операции импорта и экспорта с помощью одной вкладки ленты, названной Внешние данные (External Data) (рис. 19.3). |