Павел Дубнов - Access 2002: Самоучитель стр 40.

Шрифт
Фон

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.58

В этом же окне выберите в разделе Параметры вставки опцию Только структура. Когда вы щелкнете по кнопке ОК, в окне базы данных на вкладке Таблицы появится имя новой таблицы – ES_OPER1. Откройте ее в режиме конструктора и измените то свойство поля Условие отбора, которое касается запрета на повторение записей (рис. 11.59). Сравните значение этого свойства, установленное для скопированной таблицы, с аналогичным значением для исходной таблицы (см. рис. 11.54).

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.59

Теперь займемся формированием долгожданного запроса на добавление. Алгоритм создания подобных запросов был подробно рассмотрен в этой главе, в разделе "Запрос на добавление записей в таблицу", поэтому здесь отметим лишь одну деталь. В данном случае таблицей-получателем является ES_OPER1, а таблицей-источником – ES_OPER. В ходе выполнения запроса Access 2002 пожалуется вам на то, что не может включить в таблицу-получатель какое-то количество записей, поскольку в ней не допускается наличие дубликатов (рис. 11.60).

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.60

Но именно к этому вы и стремились! Отбросив угрызения совести, смело отвечайте Да.

Итоговый вид бланка запроса показан на рис. 11.61, а очищенная от повторяющихся записей таблица ES_OPER1 – на рис. 11.62.

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.61

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.62

По поводу последней необходимо небольшое пояснение. Если вы обратитесь к результирующей таблице повторяющихся записей, которая представлена на рис. 11.53, то убедитесь, что она включает 382 дубликата. Между тем исходная таблица ES_OPER содержит 7841 запись, а таблица ES_OPER1 – 7626 записей. Значит, удалено всего 215 записей.

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

Теперь, чтобы завершить всю операцию, удалите из базы данных таблицу ES_OPER, а ее имя присвойте таблице ES_OPER1 . Что касается поля Условие отбора, то при желании его можно убрать. Однако мы уже рекомендовали вам не торопиться с этим: наличие поля позволит предотвратить дублирование записей при последующем вводе данных.

Если мы теперь посмотрим инструкцию SQL, например для последнего запроса на добавление (рис. 11.63), то увидим, как там, в соответствии с уже рассмотренными выше правилами, "прописаны" действия над всеми полями таблиц.

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.63

Перекрестный запрос

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

Как правило, при перекрестном запросе первый столбец получаемой в результате таблицы отображает значения одной переменной – это заголовки строк. В первой строке этой таблицы приводятся значения второй переменной – заголовки столбцов. На пересечении строк и столбцов находится сумма (количество значений, среднее и т. п.) по третьей переменной. Чтобы отразить все это в отчете, можно создать сводную таблицу. Когда перекрестный запрос выполнен, в результирующей выборке заголовки строк и столбцов часто представляют собой поля, содержащие текст или даты. Поля значений обычно относятся к числовому или денежному типу. Поясним эти положения на конкретном примере.

Построение перекрестного запроса с использованием мастера

Задача, для решения которой потребуется перекрестный запрос, формулируется так: необходимо выяснить, сколько аварий (чрезвычайных ситуаций) определенных видов произошло на территории разных субъектов Российской Федерации (краев и областей). Источником информации послужит таблица Fiie1.

Формирование перекрестного запроса лучше всего начать с помощью мастера запросов. Открыв вкладку Запросы окна базы данных, с помощью кнопки

Access 2002: Самоучитель

выйдите в окно Новый запрос и в нем выберите опцию Мастер перекрестных запросов (рис. 11.64). На этом этапе надо выбрать запрос, который содержит поля, используемые в перекрестном запросе. В нашем случае следует выбрать таблицу Fiie1. Если в какой-либо ситуации одной таблицы будет мало, то сформируйте запрос, содержащий все нужные вам поля, а затем используйте его как основу для создания перекрестного запроса.

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.64

Когда вы сделаете выбор, на экране появится следующее окно мастера перекрестных запросов (см. рис. 11.65), где вам следует решить, значения каких полей вы хотите оформить в виде заголовков строк. Всего можно указать не более трех полей. Для нашей конкретной задачи в качестве заголовков строк послужат значения поля Регион. Щелкните по кнопке Далее, а затем укажите поля (не больше трех), значения которых станут заголовками столбцов. В данном случае будет выбрано поле Наименование ЧС. После этого вы окажетесь в следующем окне мастера (см. рис. 11.66), где предстоит определить, что же вы хотите вычислить для каждой ячейки, расположенной на пересечении столбца и строки. Вы уже использовали два поля: Название области – для заголовков строк, а Наименование ЧС – для заголовков столбцов.

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.65

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.66

Теперь понадобится третья переменная, значения которой можно подсчитывать, причем они должны соответствовать значениям первых двух полей. Главное, чтобы это третье указанное поле не имело пропусков, то есть нулевых значений. Следовательно, лучше всего подойдет поле Номер. В качестве функции для подсчета числа значений выберите Число (одна из функций групповой обработки данных). Иначе говоря, в конце концов будет определено количество значений поля Номер для каждой ячейки, которая находится на пересечении столбца (ЧС определенного вида) и строки (того или иного региона Российской Федерации) – рис. 11.66. Теперь, когда вы подготовили все необходимое для создания запроса, щелкните по кнопке Далее.

В результате на экране появится окно (см. рис. 11.67), где в формируемый запрос нужно внести последние уточнения. Во-первых, его надо назвать. В принципе это ваше дело, но мы бы посоветовали принять имя, которое по умолчанию предлагает Access 2002: File1-Перекрестный. Затем надо определить, чего вы хотите: выполнить запрос или изменить его оформление. Выберите соответствующую позицию переключателя. Если вы собираетесь выполнить запрос и дизайн вас не интересует, откажитесь от следующего предложения мастера: вывести инструкцию по работе с запросом. Теперь остается только щелкнуть по кнопке Далее, и запрос будет запущен на выполнение. А вот дальше в нашем размеренном сюжете возникает неожиданная интрига – сообщение В перекрестном запросе слишком много заголовков столбцов – 507. Это означает, что последующее выполнение запроса невозможно (см. рис. 11.68). Озабоченность Access вполне понятна.

Павел Дубнов - Access 2002: Самоучитель

Рис. 11.67

Access 2002: СамоучительРис. 11.68

Фактически вы объявили заголовками столбцов или полей все наименования ЧС в таблице, кроме их дубликатов, которые система не пропустит (вместе с повторяющимися именами таких заголовков было бы не 507, а значительно больше). Действительно, многовато. Объяснение здесь простое: при формировании перекрестного запроса вы не вводили каких-либо критериев отбора. Впрочем, при использовании мастера перекрестных запросов этого сделать все равно нельзя. Если вы хотите задать такие условия, то нужно сформировать обычный запрос.

Ввод условий отбора записей в конструкторе запросов

В окне базы данных на вкладке Запрос откройте ваш перекрестный запрос в режиме конструктора (см. рис. 11.69). Теперь надо задать критерии отбора записей. Будем считать, что нас по-прежнему интересует количество ЧС по регионам, но только если эти ЧС связаны с пожарами.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

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

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3