Access 2007
.pdf
Задачи управления данными (Manage Data Tasks) (рис. 19.10) на вкладку Сохраненные операции импорта (Saved Imports) или вкладку Сохраненные операции экспорта (Saved Exports). На этих вкладках перечислены операции импорта и экспорта, которые вы сохранили в данной БД.
Далее перечислено все, что можно делать в диалоговом окне Задачи управления данными.
■Повторно выполнить операцию. Выберите ее в списке и щелкните мышью кнопку Выполнить (Run). Программа Access предупредит вас, если ей придется перезаписать существующую таблицу (во время импорта) или файл (во время экспорта). В остальном процесс выполнится в одно мгновение.
■Удалить сохраненную вами операцию. Просто выделите ее и щелкните мышью кнопку Удалить (Delete).
■Создать задачу Outlook для операции. Это средство можно использовать для напоминания о необходимости выполнения данной операции в урочное время в будущем (или через определенные промежутки времени). Для этого щелкните мышью кнопку Создать задачу Outlook (Create Outlook Task) для создания задачи и затем найдите и настройте эту задачу в программе Outlook. Когда напоминание сработает, появится удобная кнопка Выполнить импорт (Run Import), которую можно щелкнуть мышью и немедленно запустить операцию импорта в программе Access.
■Изменить некоторые аспекты вашей операции. Можно изменить имя, описание и имя файла, щелкнув мышью соответствующую деталь в диалоговом окне Задачи управления данными (Manage Data Tasks) (см. рис. 19.10). В этом случае можно начать импорт в файл c:\My Documents\FancyFiles\WildExpenses.xlsx, а затем с помощью тех же параметров импортировать в файл d:\HankSmith\EvenMoreExpenses.xlsx. Другие детали, например, таблицу-источник или таблицу-назначение, в Access или типы данных полей изменять нельзя.
Когда вы закончите работу в диалоговом окне Задачи управления данными, щелкните мышью кнопку Закрыть (Close) для того, чтобы вернуться в программу Access.
Access и XML
Одно из самых крутых модных словечек в компьютерном мире — XML (extensible Markup Language, расширяемый язык разметки), универсальный способ обмена информацией между различными программами. Программа Access 2007 поддерживает язык XML с помощью средств импорта и экспорта, в которых XML появляется как один из поддерживаемых форматов. Но если вы действительно хотите понять, как взаимодействуют средства Access и XML и вносят ли они что-то новое, нужно немного углубиться в предмет.
Что такое XML на самом деле?
Сам по себе язык XML воспринимается как нечто суперсовременное. Пользователи часто описывают его как формат хранения информации. Например, вместо сохранения данных в документах Word, электронных таблицах Excel или обычных текстовых файлах можно сохранять данные в XML-файле. Эта простота кажущаяся, и два фактора делают язык XML чем-то особенным.
■Язык XML обладает большой гибкостью. Вы можете применить XML для хранения информации самых разных типов: изображений, каталогов товаров, данных счетов, рецептов,
671
номенклатуры каталогов, технических условий для всех Dodge Minivan, когда-либо созданных, и т. д.
■Язык XML широко распространен. Компьютерные приложения, написанные на разных языках программирования (например, Java, Visual Basic либо C++) или выполняющиеся под управлением разных ОС и компьютерного оборудования (например, Windows, Mac или Linux), могут применять XML практически одинаково. Это качество делает язык XML отличным решением для обмена информацией между людьми, компаниями и даже компьютерами, которые запрограммированы на автоматическую пересылку данных от одного к другому (средства, подобные последнему, заставляют даже типов, занимающихся управлением цепочками поставок, истекать слюной, когда речь заходит об XML).
Впротивовес мнению многих, XML — это не формат представления данных (как язык HTML — формат, применяемый для создания Web-страниц). Если бы язык XML был просто форматом представления данных, он не стал бы столь незаменимым, поскольку независимо от качества формата он не может подходить для всех. Например, несмотря на то, что всем компаниям нужны счета, большинство компаний не удовлетворится общим форматом хранения данных счета. Одной компании может понадобиться отслеживание имен клиентов, в то время как другая может отслеживать идентификационные номера клиентов. Основной итог заключается в том, что большинству компаний необходимо хранить немного отличающиеся данные слегка разнящимися способами. Это означает, что одно удовлетворяющее всех решение почти всегда обречено на неудачу.
Итак, если язык XML — не формат представления данных, то что же он такое? С технической точки зрения XML — это метаязык, или проще говоря, XML — это язык для создания других языков. Язык XML обеспечивает подобное создание с помощью нескольких простых правил, которые позволяют формировать собственный формат представления информации, подходящий именно для ваших данных.
Например, компания Acme Company может создать свой XML-формат для счетов и назвать его Acmelnvoice. Между тем компания Budget Company может сформировать собственный XML-формат счетов и назвать его Budgetlnvoice. Несмотря на то, что оба формата разработаны для хранения данных счета, они могут содержать совершенно разные типы данных. Сила их — в гибкости языка XML.
Вто же время эта гибкость XML способна создать проблемы. Предположим, что банк, названный Worldwide Green, установил систему автоматической обработки XML-счетов с определенным форматом. Система работает гладко до тех пор, пока Acme Corporation не отправит свой доморощенный счет. Несмотря на то, что счет компании Acme использует язык XML, он не соответствует XML-формату, на который рассчитывает банк, и поэтому он нарушит работу банковского приложения автоматической обработки счетов. Неожиданно язык XML перестал казаться таким уж полезным.
Витоге язык XML содержит возможность универсального коллективного использования данных, но если вы не создадите некоторые правила и не будете следовать им, вы останетесь с грудой несовместимых форматов.
Примечание
Язык XML действительно чрезвычайно прост, но существует множество других стандартов, таких как XML Schema и XSLT (Extensible Stylesheet Language Transformations, таблицы стилей языка преобразований XML-документов), работающих совместно с XML и предоставляющих решения для проверки XML, исследования XML, преобразования XML и т. д. Эти дополнительные стандарты очень сложны и не обсуждаются в данной книге.
672
Три правила XML
Для того чтобы лучше понять, как настроить программу Access для обработки XML, рассмотрим простой пример. Технически вам не нужно знать, как выглядит язык XML, для того чтобы применять XML-средства в программе Access, но чем больше вы поймете, тем проще будет жизнь. В этом разделе вы узнаете три самых важных правила, которые формируют все XML-документы. Если вы уже кое-что знаете о языке XML, можно пропустить этот раздел и двигаться дальше.
Между прочим, перед тем как вы начнете, хорошая новость: язык XML написан на базе текстового, удобного для восприятия формата. Вы можете использовать такую программу, как Блокнот для разбора имеющегося XML-файла и получения базового представления о его формате и структуре. Вы даже можете написать XML-файл с нуля в Блокноте. С типичной БД Access такое проделать не удастся, потому что она хранится в двоичном формате, который можно прочесть, только если просматривать данные в программе Access. (Если попытаться открыть БД в Блокноте, вы увидите груду неподдающихся расшифровке символов.)
Пролог
Все заслуживающие уважения XML-документы начинаются с так называемого пролога документа (document prolog). В этом кусочке просто объявляется, что то, на что вы смотрите, и есть XML-документ. Он также указывает на кодировку документа, которая иногда задает применение в документе специального набора символов (например, неанглийский алфавит).
Далее приведен типичный пролог документа, указывающий, что в документе используется версия 1.0 XML-стандарта (наиболее распространенная версия):
<?xml version="1.0" ?>
Если XML-документ создается вручную, следует убедиться в том, что пролог находится в самой первой строке файла.
Элементы
Базовый строительный блок любого XML-документа — элемент. Элементы — это информационные контейнеры. Например, если вы хотите сохранить имя человека, можно создать элемент с именем Name.
Типичный элемент состоит из открывающего и закрывающего тегов. Реальные данные располагаются между этими двумя тегами. Открывающие и закрывающие теги легко узнать, поскольку они используют угловые скобки о. Далее приведен возможный открывающий тег:
<Name>
Этот тег обозначает начало элемента Name. Закрывающий тег выглядит аналогично, за исключением того, что он начинается с символов </ вместо просто символа <. Вот как следует закрыть элемент Name:
</Name>
Для того чтобы действительно сохранить некоторые данные в XML-документе, содержимое нужно вставить между открывающим и закрывающим тегами элемента. Далее показано, как сохранить чье-либо имя в XML-документе:
<Name>Patrick</Name>
673
Можно создать список имен, размещая один элемент <Name> за другим, или добавить другие элементы, хранящие информацию разных типов, например, адрес, звание, имя работодателя и т. д. Для формирования XML-документа все эти теги вместе помещаются в файл.
На профессиональном уровне. Более внимательный взгляд на теги
Теги следуют очень строгим правилам именования. Теги могут быть любой длины, указываются с учетом регистра, могут содержать любые цифровые или буквенные символы, дефисы (-), знаки подчеркивания (_) и точки (.). Другие специальные символы, в том числе пробелы, применять нельзя, и имя тега должно начинаться с буквы или знака подчеркивания. XML-документы также поддерживают символы, не включенные в английский алфавит.
Самое важное, что вам следует понять о тегах, состоит в том, что создание тегов — ваша задача. Если нужно хранить список имен, можно создать XML-формат, который использует тег <Name>. Одновременно кто-то еще может решить отслеживать фамилию, имя и отчество с помощью другого XML-формата, использующего такие элементы, как <firstName> и <lastName>. В этих элементах может храниться та же информация, что и в вашем элементе <Name>, но они отличаются, и документ, написанный с использованием тегов <f irstName> и <lastName>, несовместим с вашими документами.
Поскольку существует так много возможных XML-форматов, множество умных людей потратили уйму времени и энергии на попытки создать варианты определения разных XML-форматов и управления ими. Компании и организации также собрались вместе для определения специальных XML-стандартов для разных отраслей. Если поискать в Интернете, можно найти заранее определенные форматы для юридических, научных, касающихся недвижимости и многих других документов.
Вложенность
Пока вы видели примеры XML-элементов, содержащих текст. Можно также создать элемент, содержащий один или несколько других элементов. Это основной принцип организации информации в языке XML.
Допустим, вы хотите отслеживать имена и возрасты нескольких людей. Приведенный далее фрагмент не очень понятен, поскольку трудно сказать, кто конкретно связан с тем или иным возрастом:
<Name>Lisa Chen</Name> <Age>19</Age> <Name>Bill Harrison</Name> <Age>48</Age>
Лучше было бы сгруппировать элементы <Name> и <Age> для каждого человека и поместить их в другой элемент, например, так:
<Person>
<Name>Lisa Chen</Name>
674
<Age>19</Age>
</Person>
<Person>
<Name>Bill Harrison</Name> <Age>48</Age>
</Person>
В этом примере приведены два элемента <Person>, каждый из которых содержит сведения о конкретной персоне. Информация об отдельном человеке хранится в элементах <Name> и <Аgе>, вложенных в соответствующий элемент <Person>.
Не существует ограничений на количество уровней вложенности данных, что делает этот метод организации информации чрезвычайно гибким. На самом деле это одна из составляющих, которые обеспечивают языку XML возможность работы с множеством различных типов данных.
В языке XML установлено еще одно правило. Каждый документ должен начинаться единственным элементом, следующим непосредственно за прологом. Все остальное содержимое помещается в этот элемент, который называется корневым элементом или элементом документа. Виденные вами до настоящего момента примеры были лишь выдержками из XML-документа. В следующем далее листинге показан полный, хорошо оформленный XML-документ — список с данными о двух людях, — который начинается с элемента документа <PeopleList>:
<?xml version="1.0".?> <PeopleList>
<Person>
<Name>Lisa Chen</Name> <Age>19</Age>
</Person>
<Person>
<Name>Bill Harrison</Name> <Age>48</Age>
</Person>
</PeopleList>
Этот документ можно усовершенствовать, добавив дополнительные элементы <Person> или другие элементы, позволяющие отслеживать дополнительные сведения о каждом человеке.
Возможно, вы заметили, что в приведенных примерах XML у элементов разных уровней различные отступы. Такое оформление облегчает чтение всей структуры, но не является обязательным требованием. На самом деле приложения, читающие XML-файлы (включая программу Access), игнорируют все пустое пространство между элементами, поэтому вставленные пробелы, табуляции и пустые строки не играют никакой роли. В действительности с
675
точки зрения компьютеров приведенный только что документ абсолютно идентичен следующей менее легкой для восприятия версии:
<?xml version="1.0" ?> <PeopleListXPerson><Name>Lisa Chen</Name><Age>19</
AgeX/Person><Person><Name>Bill Harrison</Name><Age>48 </Agex/Person></PeopleList>
Файлы и схемы XML
Как вы уже узнали, XML-документы можно хранить в файле. Но так же легко их можно поместить и в БД или другие места внешней памяти. В реальной жизни иногда XML-данные не сохраняются нигде — пользователи применяют их для обмена информацией между приложениями через Интернет. Но если XML-данные используются в программе Access, всегда применяются XML-файлы (если ваша компания не создала пользовательское решение с помощью мощных средств программирования в Access).
У большинства XML-файлов расширение xml. Например, самое разумное — взять документ со списком людей, показанный ранее, и поместить его в текстовый файл, названный PersonList.xml.
Еще один очень важный тип XML-документа — XML-схемы. XML-схемы разрабатываются для решения общей проблемы, а именно определения правил для конкретного, основанного на языке XML формата. Например, схема указывает имена элементов, которые можно использовать, способ организации элементов и тип информации, которую может содержать каждый элемент. Приложение с поддержкой XML может применить схему для проверки правильности структуры и допустимости содержимого XML-документа. В идеальном мире каждый раз, когда компания создает XML-формат, она разрабатывает и XMLсхему, его определяющую. (Возможно, вас не удивит, то, что так бывает далеко не всегда.)
Для применения схемы нужно просто иметь ее копию в файле. (Сами по себе схемы сложны и уродливы и не относятся к первостепенным вещам, которые должны и хотят изучать сотрудники типичного офиса.) Обычно у файлов со схемами расширение xsd.
Примечание
Для более полного введения в язык и схемы XML познакомьтесь с отличным интерактивным руководством, предлагаемым компанией W3 Schools, на сайте www.w3schools.com/xml.
Поддержка XML в программе Access
Язык XML — это прекрасный способ обмена данными между разными компьютерными программами. Но что делать с программой Access, у которой уже есть собственный отличный способ хранения данных? Ситуация такова: сегодня все больше и больше компаний применяют язык XML для обмена данными. Когда компании обмениваются коммерческими заказами, например, или новостные организации посылают очерки, или фирмы по торговле недвижимостью перечисляют предлагаемую для продажи собственность, очень вероятно, что они используют формат на основе XML. Если вы хотите отправить ваши данные Access в такие системы, нужен способ извлечения их из специализированного ACCDB-формата БД и помещения их в простой и понятный XML-формат.
676
К сожалению, поддержка языка XML в программе Access до сих пор очень ограничена. Проблема заключается в том, что Access не разрешает выбрать нужный вам XML-формат. Вместо этого программа создает собственный формат, который точно соответствует вашей таблице. Посмотрите на таблицу на рис. 19.11. (При экспорте в XML-файл всегда экспортируется таблица целиком.)
Рис. 19.11. Пример данных, готовых к новой жизни в XML-формате
Когда экспортируется приведенная таблица, программа Access создает XML-документ, который выглядит следующим образом:
<dataroot>
<Product>
<ProductID>371</ProductID> <Name>Thin-Jam Hex Nut 7</Name> <ProductNumber>HJ-7161</ProductNumber> <SafetyStockLevel>1000</SafetyStockLevel> <ReorderPoint>750</ReorderPoint>
</Product> <Product> <ProductID>372</ProductID> <Name>Thin-Jam Hex Nut 8</Name> <ProductNumber>HJ-7162</ProductNumber> <SafetyStockLevel>1000</SafetyStockLevel> <ReorderPoint>750</ReorderPoint> </Product>
677
Независимо от экспортируемой таблицы программа Access всегда следует одним и тем же правилам:
■корневой элемент документа называется <dataroot>;
■программа Access создает отдельный элемент для каждой строки таблицы, используя имя таблицы. В данном примере это означает, что вы получите один элемент <Product> для каждой записи;
■внутри каждой записи Access создает отдельный элемент для каждого поля. В данном примере вы получите поля <Name>, <ProductNumber> и т. д.
Вподобной структуризации XML-документа нет ничего плохого. Однако поскольку у вас нет возможности изменять структуру, вы потерпите неудачу, если захотите использовать другую программу, которая принимает XML-документы с другим форматом. Например, ваша программа рассчитывает, что корневой элемент будет назван <ProductRecords>, а не <dataroot> или она принимает несколько иную вложенность элементов. Незначительные нестыковки, подобные описанным, могут полностью нарушить работу приложения с XML-обработкой.
Печально, но эту проблему не обойти. Для того чтобы использовать XML-файлы программы Access, нужно специально разрабатывать программу, распознающую эту структуру, или применять другое средство для преобразования XML-файла в стандарт, который вам на самом деле нужен. Средство экспорта в XML-файл программы Access позволяет начать, но не предоставляет вариантов для представления данных.
Примечание
Если вам необходимо отфильтровать записи или не интересующие вас поля либо переименовать поля, задачу можно решить с помощью запроса. Просто создайте запрос, который представляет информацию нужным вам образом, и затем экспортируйте результаты запроса (вместо целой таблицы).
Те же ограничения возникают, когда импортируется XML-содержимое. Программа Access рассчитывает на получение XML-содержимого с жестким табличным форматом. Если вы попытаетесь представить ей XML-документ другого типа, то получите сообщение об ошибке.
Экспорт в XML-файл
Теперь, когда вы познакомились с языком XML и рассмотрели ограничения, установленные в программе Access, вы готовы применить его для собственных нужд. Далее перечислены необходимые для этого действия.
1.Выберите на ленте Внешние данные → Экспорт → Дополнительно → XML-файл
(External Data → Export → More → XML File). Начинается знакомый вам процесс экспорта.
2.Введите имя файла, который хотите создать, и нажмите кнопку ОК.
Программа Access предполагает, что будет использоваться имя таблицы. Например, если экспортируется таблица Orders, рекомендуемое программой имя XML-файла — Оrders.xml.
678
3.Выберите типы файлов, которые хотите создать (рис. 19.12):
□данные (XML) (Data (XML)) — создается XML-файл с действительным содержимым из всех записей вашей таблицы;
□схема данных (XSD) (Schema (XSD)) — создается файл схемы с расширением xsd. Схема не содержит никаких данных, а хранит краткое определение, описывающее вашу таблицу и содержащиеся в ней поля. У схемы два назначения — ее можно передать профессиональным программистам, чтобы они знали, какого типа XML-документ ждать от программы Access, или использовать ее для создания новой пустойтаблицы в другой БД Access;
□презентация данных (XSL) (Presentation (XSL)) — создает файл преобразования с расширением xsl. В этом файле определяется, как обозреватель может преобразовать исходные данные из XML-файла в Web-страницу на языке HTML, подходящую для отображения в Web-обозревателе. Когда этот флажок установлен, Access также создает htm-файл, использующий xsl-файл. Например, если экспортируется таблица Products, вы получите в результате файл Web-страницы Products.htm. Откройте ее в вашем Web-обозревателе, и он воспользуется файлом Products.xsl для отображения данных из файла Products.xml.
Рис. 19.12. Обычно создается XML-файл, хранящий реальные данные из вашей таблицы. Кроме того, можно создать два дополнительных файла поддержки
4. Если вы хотите экспортировать связанные таблицы в одном и том же XML-документе, щелкните мышью кнопку Дополнительно... (More Options...).
На экране появится окно Экспорт XML (Export XML) с дополнительными параметрами. Большинство из этих параметров лучше всего оставить гуру XML. Но наиболее интересна вкладка Данные (Data) — она позволяет экспортировать связанные таблицы (рис. 19.13).
Например, при экспорте таблицы Orders у вас есть две возможности.
□Экспорт других подчиненных таблиц. Можно было бы также экспортировать записи таблицы OrderDetails для каждого заказа. Программа Access вкладывает в XMLфайл элементы OrderDetails внутрь соответствующего элемента Orders.
□Экспорт связанных записей из главной таблицы. Можно было бы, например, экспортировать записи из таблиц OrderStatus и CreditCards. Эти записи появляются под заголовком [Данные подстановки] ([Lookup Data]), поскольку они предоставляют дополнительные данные, связанные с заказом (в данном случае текущий статус заказа и кредитную карту, применяемую для оплаты заказа).
679
Рис. 19.13. На вкладке Данные отображается дерево с экспортируемой таблицей в корне, а ветви дерева представляют связанные таблицы. Если вы хотите включить данные из этих связанных таблиц, просто установите флажок, расположенный рядом с каждой из них
Примечание
Когда экспортируются главные или родительские таблицы, данные не вкладываются в XMLдокументе, поскольку это могло бы привести к дублированию (например, если у нескольких заказов один и тот же статус или в них применяется одна и та же кредитная карта). Вместо этого они добавляются после основной экспортируемой таблицы.
5.Щелкните мышью кнопку ОК.
Программа Access создаст файлы, выбранные в пункте 3.
6.Если вы хотите повторить процесс экспорта несколько раз, установите флажок
Сохранить шаги экспорта (Save export steps).
Щелкните мышью кнопку Закрыть (Close) для возврата в окно программы Access.
Импорт из XML-файла
Программа Access делает очень легким процесс импорта XML-данных, при условии что у них структура, на которую рассчитывает программа. Для проверки на практике выберите только что экспортированную таблицу и заново импортируйте ее в новую БД. Вот как это делается.
1.Выберите на ленте Внешние данные → Импорт → Импорт XML-файла (External Data
→Import → XML File).
Начнется знакомый процесс импорта.
2.Если создается новая таблица и для ваших данных есть схема, задайте имя файла, содержащего схему. Если у вас уже есть таблицы, которые хотите использовать, или под рукой нет схемы, перейдите сразу к пункту 6.
680
