Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
Скачать 19.64 Mb.
|
Примечание Язык XML действительно чрезвычайно прост, но существует множество других стандартов, таких как XML Schema и XSLT (Extensible Stylesheet Language Transformations, таблицы стилей языка преобразований XML-документов), работающих совместно с XML и предоставляющих решения для проверки XML, исследования XML, преобразования XML и т. д. Эти дополнительные стандарты очень сложны и не обсуждаются в данной книге. Три правила XML Для того чтобы лучше понять, как настроить программу Access для обработки XML, рассмотрим простой пример. Технически вам не нужно знать, как выглядит язык XML, для того чтобы применять XML-средства в программе Access, но чем больше вы поймете, тем проще будет жизнь. В этом разделе вы узнаете три самых важных правила, которые формируют все XML-документы. Если вы уже кое-что знаете о языке XML, можно пропустить этот раздел и двигаться дальше. Между прочим, перед тем как вы начнете, хорошая новость: язык XML написан на базе текстового, удобного для восприятия формата. Вы можете использовать такую программу, как Блокнот для разбора имеющегося XML-файла и получения базового представления о его формате и структуре. Вы даже можете написать XML-файл с нуля в Блокноте. С типичной БД Access такое проделать не удастся, потому что она хранится в двоичном формате, который можно прочесть, только если просматривать данные в программе Access. (Если попытаться открыть БД в Блокноте, вы увидите груду неподдающихся расшифровке символов.) Пролог Все заслуживающие уважения XML-документы начинаются с так называемого пролога документа (document prolog). В этом кусочке просто объявляется, что то, на что вы смотрите, и есть XML-документ. Он также указывает на кодировку документа, которая иногда задает применение в документе специального набора символов (например, неанглийский алфавит). Далее приведен типичный пролог документа, указывающий, что в документе используется версия 1.0 XML-стандарта (наиболее распространенная версия): Если XML-документ создается вручную, следует убедиться в том, что пролог находится в самой первой строке файла. Элементы Базовый строительный блок любого XML-документа — элемент. Элементы — это информационные контейнеры. Например, если вы хотите сохранить имя человека, можно создать элемент с именем Name. Типичный элемент состоит из открывающего и закрывающего тегов. Реальные данные располагаются между этими двумя тегами. Открывающие и закрывающие теги легко узнать, поскольку они используют угловые скобки о. Далее приведен возможный открывающий тег: Этот тег обозначает начало элемента Name. Закрывающий тег выглядит аналогично, за исключением того, что он начинается с символов вместо просто символа <. Вот как следует закрыть элемент Name: Для того чтобы действительно сохранить некоторые данные в XML-документе, содержимое нужно вставить между открывающим и закрывающим тегами элемента. Далее показано, как сохранить чье-либо имя в XML-документе: Можно создать список имен, размещая один элемент На профессиональном уровне. Более внимательный взгляд на теги Теги следуют очень строгим правилам именования. Теги могут быть любой длины, указываются с учетом регистра, могут содержать любые цифровые или буквенные символы, дефисы (-), знаки подчеркивания (_) и точки (.). Другие специальные символы, в том числе пробелы, применять нельзя, и имя тега должно начинаться с буквы или знака подчеркивания. XML-документы также поддерживают символы, не включенные в английский алфавит. Самое важное, что вам следует понять о тегах, состоит в том, что создание тегов — ваша задача. Если нужно хранить список имен, можно создать XML-формат, который использует тег Поскольку существует так много возможных XML-форматов, множество умных людей потратили уйму времени и энергии на попытки создать варианты определения разных XML-форматов и управления ими. Компании и организации также собрались вместе для определения специальных XML-стандартов для разных отраслей. Если поискать в Интернете, можно найти заранее определенные форматы для юридических, научных, касающихся недвижимости и многих других документов. Вложенность Пока вы видели примеры XML-элементов, содержащих текст. Можно также создать элемент, содержащий один или несколько других элементов. Это основной принцип организации информации в языке XML. Допустим, вы хотите отслеживать имена и возрасты нескольких людей. Приведенный далее фрагмент не очень понятен, поскольку трудно сказать, кто конкретно связан с тем или иным возрастом: Лучше было бы сгруппировать элементы В этом примере приведены два элемента Не существует ограничений на количество уровней вложенности данных, что делает этот метод организации информации чрезвычайно гибким. На самом деле это одна из составляющих, которые обеспечивают языку XML возможность работы с множеством различных типов данных. В языке XML установлено еще одно правило. Каждый документ должен начинаться единственным элементом, следующим непосредственно за прологом. Все остальное содержимое помещается в этот элемент, который называется корневым элементом или элементом документа. Виденные вами до настоящего момента примеры были лишь выдержками из XML-документа. В следующем далее листинге показан полный, хорошо оформленный XML-документ — список с данными о двух людях, — который начинается с элемента документа Этот документ можно усовершенствовать, добавив дополнительные элементы Возможно, вы заметили, что в приведенных примерах XML у элементов разных уровней различные отступы. Такое оформление облегчает чтение всей структуры, но не является обязательным требованием. На самом деле приложения, читающие XML-файлы (включая программу Access), игнорируют все пустое пространство между элементами, поэтому вставленные пробелы, табуляции и пустые строки не играют никакой роли. В действительности с точки зрения компьютеров приведенный только что документ абсолютно идентичен следующей менее легкой для восприятия версии: Файлы и схемы 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-формат. К сожалению, поддержка языка XML в программе Access до сих пор очень ограничена. Проблема заключается в том, что Access не разрешает выбрать нужный вам XML-формат. Вместо этого программа создает собственный формат, который точно соответствует вашей таблице. Посмотрите на таблицу на рис. 19.11. (При экспорте в XML-файл всегда экспортируется таблица целиком.) Рис. 19.11. Пример данных, готовых к новой жизни в XML-формате Когда экспортируется приведенная таблица, программа Access создает XML-документ, который выглядит следующим образом: 371 HJ-7161 372 HJ-7162 Независимо от экспортируемой таблицы программа Access всегда следует одним и тем же правилам:
В подобной структуризации XML-документа нет ничего плохого. Однако поскольку у вас нет возможности изменять структуру, вы потерпите неудачу, если захотите использовать другую программу, которая принимает 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. 3. Выберите типы файлов, которые хотите создать (рис. 19.12):
Рис. 19.12. Обычно создается XML-файл, хранящий реальные данные из вашей таблицы. Кроме того, можно создать два дополнительных файла поддержки 4. Если вы хотите экспортировать связанные таблицы в одном и том же XML-документе, щелкните мышью кнопку Дополнительно... (More Options...). На экране появится окно Экспорт XML (Export XML) с дополнительными параметрами. Большинство из этих параметров лучше всего оставить гуру XML. Но наиболее интересна вкладка Данные (Data) — она позволяет экспортировать связанные таблицы (рис. 19.13). Например, при экспорте таблицы Orders у вас есть две возможности.
Рис. 19.13. На вкладке Данные отображается дерево с экспортируемой таблицей в корне, а ветви дерева представляют связанные таблицы. Если вы хотите включить данные из этих связанных таблиц, просто установите флажок, расположенный рядом с каждой из них Примечание Когда экспортируются главные или родительские таблицы, данные не вкладываются в XML-документе, поскольку это могло бы привести к дублированию (например, если у нескольких заказов один и тот же статус или в них применяется одна и та же кредитная карта). Вместо этого они добавляются после основной экспортируемой таблицы. 5. Щелкните мышью кнопку ОК. Программа Access создаст файлы, выбранные в пункте 3. 6. Если вы хотите повторить процесс экспорта несколько раз, установите флажок Сохранить шаги экспорта (Save export steps). Щелкните мышью кнопку Закрыть (Close) для возврата в окно программы Access. Импорт из XML-файла Программа Access делает очень легким процесс импорта XML-данных, при условии что у них структура, на которую рассчитывает программа. Для проверки на практике выберите только что экспортированную таблицу и заново импортируйте ее в новую БД. Вот как это делается. 1. Выберите на ленте Внешние данные → Импорт → Импорт XML-файла (External Data →Import → XML File). Начнется знакомый процесс импорта. 2. Если создается новая таблица и для ваших данных есть схема, задайте имя файла, содержащего схему. Если у вас уже есть таблицы, которые хотите использовать, или под рукой нет схемы, перейдите сразу к пункту 6. Можно импортировать непосредственно из XML-файла, но всегда лучше применить схему, если таблица создается впервые, поскольку в схеме хранится информация о типах данных всех полей. Эти сведения гарантируют большее соответствие создаваемой таблицы исходной таблице, которую вы экспортировали. 3. Щелкните мышью кнопку ОК. П рограмма Access просмотрит схему и отобразит структуру таблиц, которые будут созданы (рис. 19.14). Рис. 19.14. В данном примере Access корректно устанавливает, что ваш файл схемы определяет структуру таблиц Orders, OrderDetails, OrderStatus и CreditCards. Можно раскрыть каждую таблицу и увидеть содержащиеся в ней поля 4. Щелкните мышью кнопку ОК. С помощью данных схемы программа Access создает новую пустую таблицу с корректной структурой. Теперь можно заполнять ее данными. Примечание Если таблица с таким же именем уже существует, Access добавит в конец имени число, чтобы отличать новую таблицу (например, Products1, Products2 и т. д.).
Теперь, когда ваши таблицы созданы, можно импортировать реальные данные. 7. Задайте имя XML-файла, содержащего данные, которые хотите импортировать, и щелкните мышью кнопку ОК. Программа Access отобразит структуру таблицы на основе XML-данных вашего файла, Эта структура должна точно соответствовать структуре таблицы, которую вы хотите создать или в которую хотите добавить данные. 8. Выберите один из вариантов операции импорта.
Примечание Если в процессе импорта вам нужно создать таблицу, всегда лучше применить файл схемы для ее создания (как описано в пунктах 1—5), поскольку в схеме содержатся более точные сведения о типах данных. 9. Щелкните мышью кнопку ОК. Access заполнит таблицы данными из вашего XML-файла. Если вы хотите повторять процесс импорта несколько раз, установите флажок Сохранить шаги импорта (Save export steps). Сбор информации по электронной почте В мире пользователей электронной почты гораздо больше, чем знатоков БД. Поэтому было бы очень кстати иметь способ получения данных от других людей с помощью сообщений электронной почты. Специалисты, работавшие над программой Access, думали также. Они добавили еще одно средство передачи данных в Access из других источников: данные можно собирать по электронной почте. Вот как действует это средство.
Часто средство сбора данных с помощью электронной почты применяется для получения сведений о людях. Например, у вас может быть таблица со списком контактов. Вы можете отправить каждому человеку электронное сообщение и попросить его предоставить личные данные (адрес, номер телефона и т. д.). Конечно, с помощью этого средства можно собрать информацию и другого типа, например, список компонентов, которые люди хотят принести, для организации обеда в складчину. У средства сбора данных с помощью электронной почты есть несколько базовых правил.
В следующих разделах вы увидите, как создать нужное сообщение электронной почты и затем поместить данные в вашу таблицу. Создание сообщения электронной почты Прежде всего (при условии, что вы уже установили программу Outlook и настроили вашу учетную запись электронной почты в ней) укажите таблицу, куда хотите вставлять данные. В следующем примере вы увидите, как добавить предполагаемых кандидатов в таблицу Bachelors (холостяки) БД Dating Service (служба знакомств). Если вы хотите испытать это средство со своими друзьями, БД Dating Service можно найти на странице "Missing CD" Web-сайта www.missingmanuals.com. Вот, как это делается. 1. Выберите на ленте Внешние данные → Сбор данных → Создание электронного сообщения (External Data → Collect Data → Create E-mail). На экране появится мастер. В первом окне мастера перечислены все шаги, необходимые для получения ваших данных. 2. Для того чтобы двигаться дальше, нажмите кнопку Далее (Next). На втором шаге можно выбрать тип формы, которую хотите использовать. 3. Выберите вариант HTML-форма (HTML form) и щелкните мышью кнопку Далее. Этот вариант сообщает программе Access о необходимости использовать HTML-теги в ее сообщении электронной почты. С помощью этих тегов Access может создать форму с привлекательным внешним видом и полями ввода, в которые адресат сможет ввести данные. Второй оставшийся вариант (Microsoft Office InfoPath form) отключен, если на вашем компьютере не установлено приложение InfoPath. Оно включено в состав только некоторых редакций пакета Office и чаще всего используется в больших компаниях. Несмотря на то, что InfoPath — отличная программа, у нее есть один серьезный недостаток — для того чтобы применить форму InfoPath, у всех ваших адресатов на компьютерах должна быть установлена программа InfoPath. По этой причине вариант HTML, как правило, выгодней. 4. На следующем шаге запрашивается необходимость сбора новых данных или обновления существующих. Выберите подходящий вариант и щелкните мышью кнопку Далее. Обычно выбирается вариант Собирать только новые данные (Collect new information only). Именно он подходит для БД Dating Service, поскольку вы хотите получить информацию, которую нужно добавить в таблицу Bachelors как отдельную запись для каждого отправителя. Если выбирается вариант Обновлять существующие данные (Update existing information), в вашей таблице должны содержаться адреса электронной почты отправителей. Например, этот подход можно применять, если в таблице Bachelors есть набор записей, которые вы хотите обновить. Каждый холостяк получит электронный адрес, который можно использовать для изменения текущих данных о себе. Подсказка Вы, конечно, также можете применять вариант обновления, если адреса электронной почты есть в другой таблице, которая связана с заполняемой таблицей. Например, можно было бы обновить текущий статус каждого проекта из таблицы Projects, если в ней есть поле Project-ManagerlD, указывающее на запись в таблице ProjectManagers. которая в свою очередь содержит адрес электронной почты. 5. Выберите поля, которые хотите собрать. Для добавления поля выберите его в списке Поля в таблице (Fields in table) и затем щелкните мышью кнопку >. Или щелкните мышью кнопку » для переноса всех полей за один шаг. Примечание Вы не увидите поле Код (ID) с типом Счетчик в списке Fields in table (Поля в таблице). Программа Access знает о том, что она должна генерировать это значение самостоятельно, поэтому не просит никого предоставить это значение. Также не отображаются многозначные поля или поля с типом Вложение, поскольку Access не может создать формы для данных этих типов. 6. При желании задайте более понятные имена для ваших полей. Например, подпись "Your favorite food is" ("Ваша любимая еда") может оказаться понятнее, чем имя поля FoodPreference (пищевые предпочтения). Для изменения подписи выберите ее в списке и измените поле ввода, появляющееся ниже. Можно также установить флажок Только чтение (Read-only), чтобы пользователи не могли изменить значение поля. Этот вариант имеет смысл, только если вы просите пользователей обновить записи. В этой ситуации, возможно, на форме есть данные для просмотра, но не для изменения. 7. При желании измените порядок следования полей. Для переноса поля выделите его в списке включенных в форму полей и воспользуйтесь кнопками со стрелкой, направленной вверх или вниз. Когда программа Access создаст форму электронной почты, она поместит на ней поля в том же порядке. 8. Щелкните мышью кнопку Далее (Next). На экране появляется последнее окно мастера. 9. Выберите папку, в которой Access сохраняет ответы после того, как обработала их. Обычно программа Access хранит ответы в папке Outlook, названной Ответы для сбора данных Access (Access Data Collection Replies). Но можно применить любую папку, какую захотите. Для замены папки щелкните кнопкой мыши ссылку Ответы для сбора данных Access. Запустится программа Outlook и выведет на экран диалоговое окно Обзор (Select Folder), в котором можно выбрать любую имеющуюся папку (или щелкнуть мышью кнопку Создать папку (New) для создания новой папки). После выбора нужной папки щелкните мышью кнопку ОК. Подсказка Если вы планируете выполнить несколько операций импорта для разных таблиц, есть смысл использовать разные папки. 10. Если хотите применить автоматическую обработку, установите флажок Автоматически обрабатывать ответы... (Automatically process replies...). Если хотите обработать ответы вручную, перейдите к пункту 12. Если применяется автоматическая обработка, программа Outlook связывается с Access, чтобы выяснить, получила ли она ответ. Затем программа Access сразу добавляет или обновляет соответствующую запись. Подобная система действует до тех пор, пока файл вашей БД остается на одном и том же месте, с тем же именем и без защиты паролем. Для ручной обработки требуется больше усилий, но это по-настоящему безопасный вариант. В этом случае можно просмотреть каждый ответ, прежде чем добавлять запись. Вы также точно знаете, сколько ответов получили и можете проверить ошибки до того, как данные попадут в вашу таблицу. Таким образам, ручная обработка — лучший выбор. Д ля ручной обработки требуется больше усилий, но это по-настоящему безопасный вариант. В этом случае можно просмотреть каждый ответ, прежде чем добавлять запись. Вы также точно знаете, сколько ответов получили и можете проверить ошибки до того, как данные попадут в вашу таблицу. Таким образам, ручная обработка — лучший выбор. Рис. 19.15. Если вы выбрали автоматическую обработку ответов, в этом диалоговом окне можно задать ряд параметров 11. Если используется автоматическая обработка, щелкните кнопкой мыши ссылку Задать свойства, управляющие автоматической обработкой ответов (Set properties to control the automatic processing of replies) для отображения диалогового окна Параметры сбора данных с помощью электронной почты (Collecting Data Using E-mail Options) (рис. 19.15). Задайте нужные параметры и щелкните мышью кнопку ОК. Вы можете управлять следующими параметрами. □ Флажок Запретить ответы от пользователей, которым не посылалось сообщение (Discard replies for those to whom you did not send the message) позволяет игнорировать сообщения от людей, которым вы не посылали писем по электронной почте.
12. Щелкните мышью кнопку Далее (Next). В следующем окне выводится запрос о том, как вы хотите предоставлять адреса электронной почты. 13. Выберите вариант предоставления адреса электронной почты и затем нажмите кнопку Далее. Выберите вариант Ввод адресов электронной почты в Microsoft Office Outlook (Enter the email addresses in Microsoft Office Outlook), если хотите вводить адреса электронной почты ваших получателей (или выбирать их из Адресной книги). Затем переходите к пункту 15. Выберите вариант Использовать адреса электронной почты, хранящиеся в поле в базе данных (Use the email addresses stored in a field in the database), если хотите извлекать адреса электронной почты из таблицы. Е сли вы обновляете таблицу, то не увидите этого этапа. Вы всегда должны извлекать адреса из таблицы. 14. Если адреса электронной почты предоставляются из таблицы, нужно сообщить программе Access, какие таблицу и поле использовать для этого. Затем щелкните мышью кнопку Далее (Next). Рис. 19.16. На рисунке приведена форма для таблицы Bachelors. Вы заметите, что Access автоматически определяет обязательные поля и вставляет в каждую форму некоторые уточнения, касающиеся приемлемых типов данных Можно извлекать адреса из текущей таблицы (если выполняются обновления записей) или другой связанной таблицы (в случае обновления или добавления записей). Если информация обновляется в таблице Bachelors, можно использовать поле Email в этой таблице. Если же создается список проектов, каждый из которых связан с записью о менеджере проекта, адреса электронной почты можно извлечь из таблицы ProjectManagers и разрешить пользователям создавать связанные записи в таблице Projects. 15. Настройте до мелочей электронное сообщение, которое собираетесь отправлять, и щелкните мышью кнопку Далее (Next). Можно изменить текст в поле |