Access 2002. Самоучитель
Шрифт:
Результат этого дополненного запроса вы видите на рис. 11.73, где показан тот же фрагмент таблицы, что и в предыдущем случае. Во-первых, число аварий по регионам возросло (Иркутская, Кемеровская области). Во-вторых, увеличился список регионов, например добавилась Мурманская область, которой раньше не было в этом перечне.
Итак, в настоящем разделе мы подробно рассмотрели структуру перекрестного запроса и уяснили для себя существенное правило: чтобы обработать группу записей и получить справку по множеству объектов, надо сначала четко определить само множество. В данном конкретном примере нам необходимо суммарное число ЧС определенного вида по разным российским регионам. Значит, в первую очередь надо получить такие сведения
Работа со средой Access 2002 без ее инсталляции
Подобная постановка вопроса может показаться несколько странной, однако она имеет определенные основания. Предположим, разработчик сначала создал базу данных в программной среде Access 2002, а затем установил эту БД на другой локальный компьютер, где не инсталлированы ни Access 2002, ни даже пакет Microsoft Office. Возникает естественный вопрос: может ли пользователь работать на таком компьютере с созданной базой данных? Оказывается, да, и в настоящем разделе мы расскажем, как этого добиться.
В главе 9 уже говорилось, что в большинстве СУБД использование языка SQL фактически является правилом. Наличие общепринятого языка позволяет стандартизировать работу приложений с источниками данных – различными СУБД. В Windows такую возможность обеспечивает Open Data Base Connectivity (ODBC) – стандартный набор функций, помогающих обрабатывать информацию на серверах баз данных SQL. Именно ODBC обеспечивает различным программам доступ к одному и тому же источнику сведений.
Принцип действия ODBC состоит в следующем. Чтобы то или иное приложение могло воспользоваться информацией из базы данных какой-либо СУБД, необходимо установить драйвер ODBC для баз данных конкретной СУБД. Для каждой СУБД должен быть установлен свой драйвер. Папка, где хранится этот драйвер, обычно так и называется – ODBC – и устанавливается вместе с загрузкой Windows. Драйвер ODBC – это динамически связываемая библиотека со стандартным интерфейсом, которая обеспечивает доступ к базам данных в определенном формате. Из любого приложения пользователь может легко связаться с любым из установленных драйверов ODBC и получить доступ к информации в базе данных, даже если СУБД, где была создана эта база, не инсталлирована на пользовательском компьютере.
В составе пакета Microsoft Office, начиная с самой первой версии, есть программа MS Query, обеспечивающая доступ к любым данным, для которых установлены драйверы ODBC. Отметим, что MS Query имеет собственный интерфейс и может функционировать отдельно от Microsoft Office. Мы воспользуемся программой MS Query, взятой из ранних, русифицированных редакций Microsoft Office, поэтому в настоящем разделе диалоговые окна будут выводиться на русском языке.
Рассмотрим работу с MS Query на конкретных примерах.
Сначала откройте папку MS Query, а в ней запустите программу (см. рис. 11.74). На экране появится основное диалоговое окно программы MS Query, показанное на рис. 11.75.
Рис. 11.74
В нем следует воспользоваться кнопкой
(Открыть запрос). Так вы начнете формировать запрос на выборку данных из БД в Access 2002, не инсталлируя саму систему Access. Чтобы убедиться в этом, проведите небольшой эксперимент. Перенесите в какую-нибудь другую папку программу, которая запускает Access 2002, – Msaccess.exe. Тем самым вы блокируете запуск СУБД.
Итак, щелкнув по кнопке Открыть запрос, вы откроете окно Выбор источника данных (см. рис. 11.76). Здесь можно выбрать опцию MS Access Database, а затем щелкнуть по клавише Использовать. Однако сначала откройте окно Источники данных ODBC, показанное на рис. 11.77.
Здесь приведен перечень тех СУБД и вообще файлов других форматов, к которым можно получить доступ с помощью ODBC.
Выберите и добавьте две таблицы: Фирмы и Страны. Данные из этих таблиц появятся в бланке запроса почти в том же виде, в каком они представлены в режиме конструктора (см. рис. 11.79). Если вы не установите явную связь между двумя таблицами по коду страны, то в результате будет выведен полный набор имеющихся значений: все фирмы и страны независимо от того, в какой стране находится та или иная фирма. Чтобы упорядочить информацию, лучше обозначить связь между таблицами, что вы и видите на рис. 11.79. Если потребуется перейти из этого режима в режим таблицы, щелкните по кнопке
(Показать/спрятать таблицы). Режим таблицы отображен на рис. 11.80.
Теперь предположим, что нужен список фирм, работающих в России. Иными словами, вы собираетесь создать запрос на выборку. Для этого воспользуйтесь кнопкой
На экране появится бланк запроса с перечнем условий отбора. Задайте в поле Страна критерий Россия, как показано на рис. 11.81. Затем, как обычно, с помощью кнопки
отправьте запрос на выполнение. (Отметим только, что в данном случае знакомая вам кнопка называется иначе – Запросить сейчас.) Результирующая таблица, которая содержит отобранные записи, приведена на рис. 11.82. Сохраните запрос, как делали это раньше. Теперь его можно вызвать и реализовать посредством кнопки
(Вызвать запрос). И последнее: если вы щелкнете по кнопке
(Показать SQL), то получите текст запроса на языке SQL (рис. 11.83).
Таким образом, вы вошли в базу данных системы Access 2002 с помощью драйвера ODBC и получили возможность нормально работать. Примечательно, что вы не инсталлировали саму систему, но получили почти полную иллюзию того, что находитесь именно в ней.
Разные режимы формирования запроса SQL
В Access 2002 запросы SQL можно создавать в одном из двух режимов запроса ANSI SQL [16] :
• ANSI-89 описывает традиционный синтаксис SQL. Этот режим близок к спецификации ANSI-89 уровня 1, но не является совместимым с ANSI-89 уровня 1. Некоторые средства ANSI-89 SQL не реализованы, а подстановочные знаки удовлетворяют спецификации Visual Basic для приложений (VBA), но не спецификации SQL;
• в ANSI-92 имеются новые зарезервированные слова, правила синтаксиса и подстановочные знаки, расширяющие возможности создания запросов, фильтров и инструкций SQL. Этот режим близок к спецификации ANSI-92 уровня 1, но не является совместимым с ANSI-92 уровня 1. В данном режиме запроса содержится больше синтаксиса ANSI, а подстановочные знаки удовлетворяют спецификации SQL.