Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Access 2007

.pdf
Скачиваний:
116
Добавлен:
11.05.2015
Размер:
23.5 Mб
Скачать

Далее перечислены самые частые причины, заставляющие пользователей экспортировать информацию.

Вы хотите отправить какие-либо данные вашему другу по электронной почте. Копию БД Access вы отправлять не желаете, потому что у друга нет копии программы Access или вы хотите показать ему только часть данных, а не все.

Вы создаете презентацию в программе PowerPoint. Самый легкий способ ослепить и убедить ваших пользователей — продемонстрировать им некоторую впечатляющую информацию из вашей БД.

Подсказка

Программа Access хранит огромные объемы информации, и часто другие программы просто не могут их обработать. Вы никогда не сможете скопировать таблицу в презентацию PowerPoint — в лучшем случае слайд сможет вместить лишь горстку записей. Но можно показать результаты сводного запроса (см. разд. "Итоговые данные" главы 7), в котором применяется группировка для получения результатов в виде нескольких промежуточных итогов.

Вы хотите анализировать данные в программе Excel. Программа Access отлично подходит для хранения ваших данных и управления ими, но она не предоставляет средств, помогающих понять, что все это значит. Если вы хотите спрессовать данные с помощью тяжеловесных рабочих формул и воспользоваться средствами построения диаграмм, есть смысл перенести данные в программу Excel.

Некоторые программы обладают интеллектом, достаточным для того, чтобы извлечь данные из БД Access самостоятельно. Например, программа Word, у которой есть средство слияния сообщений электронной почты, позволяющее взять список имен и адресов из БД и затем использовать их для создания почтовых наклеек, персонифицированных форм и разного рода групповых документов. Для применения этого средства не нужен экспорт — достаточно указать в программе Word на файл вашей БД Access.

Что такое импорт

Импорт всегда нужен, если есть данные за пределами БД, которые являются ее составляющей. Допустим, вы создаете самую современную БД электронной коммерции для вашей фермы по разведению бизонов. Но некоторые ваши торговые партнеры все еще заполняют формы с помощью старинной электронной таблицы Excel. Вам понадобятся средства для извлечения данных из электронной таблицы Excel и переноса их в вашу БД.

Подсказка

Ваш торговый персонал вас подвел. Им не следовало вводить данные в документ, предназначенный для другой программы. Они должны были бы использовать форму, которая разработана для регистрации продаж, как описано в главе 12.

Импорт информации связан с двумя ключевыми проблемами. Первая — обеспечение соответствия данных строгим требованиям БД. Как вы узнали в главе 1, БД помешаны на правилах и грубо отбрасывают неподходящие данные (например, текст в поле для даты). Вторая трудность — обработка информации, которая не полностью соответствует, — другими словами, ее представление в БД не соответствует ее представлению во внешнем документе. Эта проблема гораздо распространеннее, чем можно было бы предположить.

651

В вашей БД могут применяться коды статуса (например, 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-программы применяют одни и те же комбинации обмена клавиш для работы с буфером. Используйте комбинацию клавиш <Ctrl>+<C> для копирования данных, <Ctrl>+ +<Х> для вырезания (т. е. копирования и удаления) и <Ctrl>+<V> для вставки информации.

652

Прежде чем проверить комбинации клавиш на практике, следует понять два ключевых факта, касающихся буфера обмена.

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

Данные некоторых типов способны самостоятельно преобразовываться в информацию других типов. Если копируется группа ячеек в программе Excel, ее можно вставить как форматированную таблицу в программу текстового процессора, например, Word или WordPerfect. Если копируется диаграмма в программе Visio, ее можно вставить как рисунок в программу Paint. В обоих примерах вы копируете объект специального типа (ячейки Excel или диаграмму Visio) в буфер обмена ОС 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 не будет копировать его в буфер обмена. Этот прием помогает отбросить данные, которые вы не хотите копировать.

653

Рис. 19.1. При выделении строк на листе данных щелкните мышью серый отступ слева у первой из строк, которые хотите выделить. Далее с нажатой кнопкой мыши сместите ее указатель вниз для выделения нужного числа строк. Если не хотите отрывать руку от мыши, можно скопировать их, если нажать и удерживать клавишу <Ctrl> и щелкнуть правой кнопкой мыши одну из выделенных строк. Далее из раскрывающегося меню можно выбрать команду Копировать

Примечание

Можно скопировать лишь непрерывную область выделения, что означает возможность копирования только смежных строк, расположенных рядом друг с другом. Если в вашей таблице 10 строк, можно скопировать строки с третьей по шестую, но нельзя скопировать первую и последнюю строки. (Конечно, можно копировать более мелкими порциями, чтобы скопировать оторванные от общего выделения строки.)

2.Нажмите комбинацию клавиш <Ctrl>+<C> для копирования выделенных строк.

Это действие помещает строки в буфер обмена ОС Windows. Теперь их можно вставить в программу Access или другую программу.

3.Перейдите в программу, в которую хотите вставить информацию. Если вы прямо сейчас проверяете это средство в первый раз, воспользуйтесь программой Excel или Word (рис. 19.2).

4.Нажмите комбинацию клавиш <Ctrl>+<V> для вставки выделенных строк (см. рис. 19.2).

Программа Access вставляет выделенные вами строки, снабжая их заголовками. Если на листе данных применялось форматирование (см. разд. "Форматирование листа данных" главы 3), большая его часть переносится.

В некоторых программах, в которые вставляются записи, можно увидеть пиктограмму смарт-тега, появляющуюся в правом углу только что вставленного содержимого. В приложениях пакета Office можно применять этот смарт-тег для изменения параметров вставки данных (например, с форматированием или без).

Примечание

Копировать текст, числа и даты легко. Но данные некоторых типов плохо поддаются переносу. Если скопировать поле типа Вложение, во вставленном контенте отобразится число вложений, но сами файлы будут отсутствовать.

654

Рис. 19.2. С помощью копирования или вырезания можно преобразовать таблицу БД в таблицу документа Word, показанную здесь. После вставки содержимого, возможно, придется подкорректировать ширину столбцов, для того чтобы все выглядело как следует

Сберегающая время подсказка. Копирование из одной БД в другую

Способ копирования, описанный только что, можно применить для копирования данных из одной БД Access в другую БД Access, которая открыта в отдельном окне. Но этот прием сработает, только если копируется вся таблица (или другой объект), а не набор строк.

Для опробования данного способа в области переходов щелкните правой кнопкой мыши нужный вам объект и затем выберите команду Вставить (Paste). Access запросит имя вставляемой таблицы и предложит три варианта вставки.

Вариант только структура (Structure) создает табличную структуру, но оставляет ее пустой.

Вариант структура и данные (Structure and Data) создает точный дубликат таблицы со всеми данными.

Вариант добавление данных в таблицу (Append Data to Existing Table) не создает новую таблицу — он добавляет данные в заданную вами таблицу. Для функционирования этого варианта у таблицы должна быть структура, в точности совпадающая со структурой скопированной вами таблицы.

Описанный прием позволяет создать дубль таблицы (или другого объекта) в той же самой базе.

655

Копирование ячеек из Excel в Access

Скопировать данные из программы Access в другую программу достаточно легко, но вы, вероятно, не рассчитываете на то, что можно выполнить и обратный процесс. Помимо всего прочего БД — это жесткая, строго структурированная коллекция данных. Если попытаться скопировать таблицу из программы текстового процессора, вы столкнетесь с отсутствием жизненно важной информации, например типов данных для каждого столбца. По этой причине Access не разрешит вставку.

Но для столь любимой всеми программы Excel Access делает исключение. Можно скопировать набор ячеек в Excel и затем вставить их в программу Access для создания новой таблицы. Эта процедура действует, потому что Excel различает данные разных типов (хотя она далеко не так придирчива, как Access). Например, Excel по-разному трактует числа, даты, текст и логические значения.

Вот как действует этот метод.

1.В программе Excel выделите ячейки, которые хотите скопировать.

Если у электронной таблицы есть заголовки столбцов, включите их в область выделения. Программа Access сможет использовать их как имена полей.

Примечание

Неважно, какая у вас версия Excel — этот метод действует во всех версиях программы.

2.Нажмите комбинацию клавиш <Ctrl>+<C>, чтобы скопировать выделенную область.

3.Перейдите в программу Access.

4.Щелкните кнопкой мыши где-нибудь в области переходов и нажмите комбинацию клавиш <Ctrl>+<V>.

Программа Access заметит, что вы пытаетесь вставить группу ячеек Excel, и попытается преобразовать их в таблицу. Сначала она поинтересуется, содержатся ли в первой строке области выделения заголовки столбцов.

5.Если в пункте 1 вы выделили заголовки, щелкните кнопку Да, в противном случае Нет.

Если выбран вариант Да, программе Access не нужно создавать случайные имена полей — она может использовать ваши заголовки.

Access создает новую таблицу для работы с новыми данными. Эта таблица названа так же, как таблица Excel. Если у таблицы имя листа Лист1 (Sheetl) (как у большинства таблиц Excel), теперь у вас есть таблица Лист1.

Когда Access закончит вставку, программа выведет на экран подтверждающее сообщение, дающее знать, что все завершилось успешно.

6. Щелкните мышью кнопку ОК.

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

Операции импорта и экспорта

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

656

компьютере не установлена соответствующая программа (или вы просто не хотите суетиться и запускать ее), необходим другой способ передачи ваших данных. Подобным образом, если вы загружаете данные из Всемирной паутины или извлекаете информацию из программы, не поддерживающей метод ОС Windows вырезания и вставки, вам потребуется полнофункциональное средство импорта программы Access.

Когда корпорация Microsoft разрабатывала программу Access 2007, было потрачено много времени на то, чтобы сделать средства импорта и экспорта яснее и понятнее. Теперь вы можете выполнять все операции импорта и экспорта с помощью одной вкладки ленты, названной Внешние данные (External Data) (рис. 19.3).

Рис. 19.3. Группа Импорт вкладки ленты Внешние данные позволяет передать данные в программу Access с помощью разнообразных форматов. Группа Экспорт выполняет обратные действия и экспортирует данные в группу различных форматов

Примечание

В группах Импорт (Import) и Экспорт (Export) есть легко доступные кнопки для большинства наиболее популярных форматов. Если вы не видите нужного формата, щелкните мышью кнопку Дополнительно (More), чтобы вывести на экран расширенный список форматов.

Импортируете вы данные или экспортируете их, процесс один и тот же. Вы отвечаете на несколько вопросов об используемом файле и способе преобразования данных, и затем про грамма Access выполняет ваши распоряжения.

После того как операция импорта или экспорта закончена, Access предоставляет возможность сохранить все шаги этого процесса. Если вы сделаете это, то позже сможете их применить повторно (см. разд. "Повторное применение параметров импорта и экспорт далее в этой главе). Этот метод позволяет сэкономить массу времени, если вам придется повторить тот же процесс экспорта или импорта еще раз (например, если нужно импортировать некоторые данные каждый день или экспортировать итог в конце каждого месяца).

Импортируемые типы файлов

Чаще всего вы будете импортировать данные одного из следующих пяти распространенны форматов.

Access. Когда используется этот вариант, никакое преобразование не выполняется. Вы берете объект БД из другого файла БД Access и копируете его в текущую БД. Этот вариант применялся в главе 18, когда создавалась клиентская БД.

Excel. Извлекаются данные из электронной таблицы Excel.

657

Список SharePoint. Добываются данные из списка, расположенного на сервере SharePoint. Для работы с данными SharePoint их не нужно импортировать. Редактировать списки SharePoint можно непосредственно в программе Access. В главе 21 вы найдете дополнительную информацию о совместной работе Access и SharePoint.

Текстовый файл. Извлекаются данные из обычного текстового файла. Как правило, в текстовых файлах для разделения значений полей используются символы определенного типа (например, запятая). Этот всегда понятный формат поддерживают многие программы, включая почти все варианты когда-либо написанных программ электронных таблиц. Когда применяется этот формат, Access просматривает текстовый файл и пытается выяснить его организацию. У вас есть возможность согласиться с предположениями программы на этот счет или откорректировать их, прежде чем импортировать какие-либо данные.

XML-файл. Получаются данные из структурированного XML-файла (Extensible Markup Language, расширяемая спецификация языка, предназначенного для создания Webстраниц). XML — совместимый с разными платформами формат, используемый для представления информации любого типа. Но вам не удастся успешно импортировать любые XML-файлы — для того чтобы операция импорта могла завершиться успешно, в XML-файле должна применяться структура, подобная табличной.

Если воспользоваться кнопкой Дополнительно (More), можно обнаружить некоторые другие, более экзотические форматы импортирования.

База данных ODBC (ODBC Database). Получается информация практически из любой БД при условии, что у нее есть драйвер ODBC (Open DataBase Connectivity, открытый интерфейс доступа к базам данных). Этот вариант особенно хорош, если необходимо получить данные из высокопроизводительных серверных БД, например, Oracle, SQL Server или MySQL.

Документ HTML (HTML Document). Извлекается информация из списка или таблицы, размещенных на Web-странице. Поскольку стандарт HTML (HyperText Markup Language, язык разметки гипертекста) печально известен как слабый (а временами откровенно сырой), лучше избегать его применения. Вполне вероятно, что при импорте вы столкнетесь с проблемами.

Папка Outlook (Outlook Folder). Добываются данные из папки программ Outlook или Outlook Express.

Файл dBase (dBase File), Файл Paradox (Paradox File), Файл Lotus 1-2-3 (Lotus 1-2-3 File). Извлекается информация из файла, созданного в одной из этих программ эпохи палеолита.

Импорт данных

Независимо от того, какой тип данных вы хотите импортировать, вам придется выполнить одни и те же действия.

1. В группе ленты Внешние данные → Импорт (External Data Import) щелкните мышью кнопку, соответствующую типу файла, который вы хотите импортировать.

Когда формат выбран, запускается мастер импорта Внешние данные (рис. 19.4).

658

Рис. 19.4. Независимо от выбранного формата мастер импорта почти один и тот же, хотя определенные параметры могут быть ограничены. На первом этапе выбирается имя файлаисточника и способ вставки информации в вашу БД программой Access

2.Введите имя файла, который хотите импортировать.

Если вы не помните путь к файлу (или не хотите набирать его вручную), щелкните мышью кнопку Обзор... (Browse...) и затем перейдите в нужное место в окне Открытие файла (File Open). После того как файл найден, дважды щелкните его кнопкой мыши.

3.Выберите, куда помещать в вашей БД импортированные данные.

У вас есть три возможных варианта размещения данных. Не для всех файловых форматов импорта все они доступны.

oИмпортировать данные источника в новую таблицу в текущей базе данных (Import the source data into a new table in the current database). Этот вариант создает новую таблицу для импортируемых данных, что убережет вас от головной боли из-за беспокойства о конфликтующих записях. Но если имя таблицы совпадает с именем уже существующей в БД Access таблицы, этот вариант стирает последнюю.

o Добавить копию записей в конец таблицы (Append a copy of the records to the table). Данный вариант добавляет импортируемые вами строки в существующую таблицу, Для успешного действия этого варианта нужно, чтобы структура импортируемых данных совпадала со структурой таблицы, которую вы используете. Например, имена

659

полей должны точно совпадать. В импортируемых данных могут быть пропущены необязательные поля и значения по умолчанию.

oСоздать связанную таблицу для связи с источником данных (Link to the data source by creating a linked table). Если применяется этот вариант, программа Access на самом деле не переносит информацию с вашу БД. Вместо этого при каждом просмотре связанной таблицы Access проверяет исходный файл для получения самой свежей информации. Самое замечательное заключается в том, что в связанной таблице всегда отображается новейшая информация. В любом другом варианте импортированная таблица остается нетронутой, если изменяется исходный файл. Но связанные таблицы тоже опасны, поскольку у вас нет гарантий того, что файл не перекочует в другое место на вашем жестком диске (где программа Access не сможет его найти). Вы применяли связанные таблицы для создания разделенной БД в главе 18.

Примечание

Связанные таблицы — хороший способ преодолеть разрыв между разными БД Access или другими БД (например, SQL Server). Но они плохо работают с более ограниченными форматами, такими как текстовый файл.

4.Щелкните мышью кнопку ОК.

Запустится мастер, который соберет оставшуюся информацию, необходимую программе Access. Если импортируется файл Excel, Access запрашивает, какую электронную таблицу использовать. Если вы импортируете текстовый файл, Access запрашивает, как разделены поля в файле.

5.Ответьте на все вопросы в мастере, чтобы сообщить программе Access все необходимые ей сведения о структуре импортируемых данных.

Когда этот этап закончен, Access задает последний вопрос — нужно ли сохранить шаги импорта.

6.Если вы хотите выполнять тот же импорт снова в дальнейшем, установите флажок Сохранить шаги импорта (Save import steps). Затем щелкните мышью кнопку Закрыть (Close).

В разд. "Повторное применение параметров импорта и экспорта" далее в этой главе показано, как повторно использовать сохраненную операцию импорта.

Примечание

Если в процессе импорта программа Access обнаруживает какие-то ошибки, она создает еще одну таблицу с тем же именем, что и у таблицы, в которую вы импортируете данные, с присоединенной в конец имени добавкой _ОшибкиИмпорта (_ImportErrors). Access вставляет в эту таблицу по одной записи на каждую проблему. Если вы пытаетесь импортировать группу данных в таблицу с именем SalesData, и программа Access не может преобразовать значения в данные нужного вам типа (например, в столбце, который должен содержать только числа, присутствует текст), вы получаете таблицу, названную

SalesData_OшибкuИмпopтa.

В следующих разделах вы познакомитесь с особенностями двух распространенных форматов данных, которым для импорта потребуются дополнительные шаги: рабочих книг Ехсel и текстовых файлов.

660

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]