Технологии электронного офиса. Учебное пособие
.pdfполнения запроса является таблица, которая существует до за- крытия запроса;
запрос на выборку с группировкой записей, которые имеют одинаковые значения в одном или нескольких полях; такие запи-
си группируются в одну запись с одновременным выполнением групповых операций над другими полями;
перекрестный запрос позволяет выполнять статистические подсчеты (суммы, количество записей и средние значения) по данным одного поля таблицы. Результаты группируются в ячей- ках (пересечение строк и столбцов), соответствующих конкрет- ным полям баз данных;
запрос на изменение выполняет операции с записями, удовлетворяющими заданным критериям: запрос на удаление удаляет из таблицы заданные записи; запрос на обновление из- меняет соответствующие записи таблицы; запрос на добавление добавляет в конец таблицы новые записи, соответствующие за- данным условиям отбора; запрос на создание таблицы создает новые таблицы, состоящие из заданных записей;
запрос с параметрами позволяет ввести информацию, ис- пользуемую в качестве критериев отбора.
Все созданные и сохраненные запросы находятся во вклад- ке Запросы окна базы данных. Для запуска запроса и просмотра
результатов его работы достаточно два раза щелкнуть по строке с его именем (или щелкнуть по имени запроса и по кнопке Открыть). После выполнения запроса на выборку на экран будут выведены только заданные поля каждой записи, удовлетворяю- щей критериям отбора.
3.18.Создание запросов на выборку данных
Как и большинство объектов базы данных, запрос может быть создан несколькими способами. Для создания запроса необ- ходимо перейти во вкладку Запросы, щелкнуть по кнопке Создать и выбрать из меню способ создания запроса. Для самостоя- тельного создания запроса выбирают Конструктор.
121
На первом этапе в окне Добавление таблицы необходимо выбрать таблицы, участвующие в запросе. Для этого выделяют в списке нужную таблицу и щелкают по кнопке Добавить. Эти действия повторяют для каждой выбираемой таблицы, затем щелкают по кнопке Закрыть. В результате появится окно конст-
руктора запросов Запрос: запрос на выборку.
Окно конструктора запросов разделено на две панели. Верхняя панель содержит схему данных запроса, которая вклю- чает выбранные для данного запроса таблицы. Таблицы пред- ставлены списками полей. Первая строка в списке полей, отме- ченная звездочкой *, обозначает все множество полей таблицы. Нижняя панель является бланком запроса QBE, который нужно заполнить.
При заполнении бланка запроса:
встроку Поле включаются имена полей, используемых в
запросе; Имя таблицы - включаются имена таблиц, из которых взя-
ты поля; Сортировка - выбирается порядок сортировки записей ре-
зультата; Вывод на экран - отмечаются поля, которые должны быть
включены в результирующую таблицу; Условие отбора - задаются условия отбора записей;
или - задаются альтернативные условия отбора записей.
На втором этапе необходимо включить в запрос нужные поля (столбцы) одним из следующих способов:
перетащить нужное поле из списка полей таблицы в схеме данных запроса в нижнюю часть запроса в первую строку бланка запроса в свободный столбец;
дважды щелкнуть по имени поля таблицы в схеме данных запроса;
впервой строке бланка запроса Поле щелчком мыши вы- звать появление кнопки списка и выбрать из списка нужное поле; список содержит все поля таблиц, представленных в бланке за- проса;
122
для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе «*» в списке полей таблицы в схеме данных запроса.
На третьем этапе необходимо ввести критерии отбора в строку Условия отбора для тех полей, по которым требуется ввести условие поиска. Для этого щелкают в нужной ячейке Условие отбора и вводят критерий. Среди полей могут быть такие, по которым не надо задавать условия отбора. Условием отбора является выражение, которое состоит из операторов сравнения и операндов, используемых для сравнения.
В качестве операндов выражения могут использоваться ли-
тералы, константы, идентификаторы (ссылки).
Литералами являются конкретные значения, воспринимае- мые Access так, как они записаны. В качестве литералов могут быть использованы числа, текстовые строки, даты. Текстовые строки заключаются в двойные кавычки, даты в символы «#».
Например, 685, «Базы данных», #01/09/02#.
Константами являются неизменяющиеся значения, которые определены в Access, например, “True”, “False”, “Да”, “Нет”, “Null”.
Идентификаторами могут быть имена полей, таблиц, форм, отчетов и т. д. Они должны заключаться в квадратные скобки.
Если необходимо указать ссылку на поле в конкретной таб- лице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отде- ленное от имени поля восклицательным знаком. Например, ссыл- ка на поле в таблице примет вид: “[Имя таблицы]![Имя поля]”, ссылка на свойство DefaultValue элемента управления «Год рож- дения» в форме СТУДЕНТЫ “Forms![СТУДЕНТЫ]![Год рожде-
ния].DefaultValue”.
Операторами сравнения и логическими операторами, ис- пользование которых допускается в выражении условия отбора, являются операторы:
= , < , > , <> , Between, In, Like, And, Or, Not.
123
Текстовые значения в выражении, если они содержат про- белы или знаки препинания, вводятся в двойных кавычках.
Допускается использование операторов шаблона - * (звез- дочка) и ? (вопросительный знак).
Оператор Between позволяет задать интервал для числового значения или дат. Например, Between 10 And 100 задает интервал от 10 до 100, Between #01.09.02# And #10.09.02# задает интервал дат от 1 до 10 сентября 2001 года.
Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скоб- ках. Например,
In («Математика», «Информатика», «Физика»).
Оператор Like позволяет использовать образцы, исполь- зующие символы шаблона, при поиске в текстовых полях
(табл. 4). Например, Like «С*» .
|
|
|
Таблица 4 |
Поле |
Выражение в строке |
Комментарий |
|
|
|
“Условие отбора” |
|
Группа |
|
“ВМ-981” |
Все записи, где шифр группы |
|
|
|
равен ВМ-981 |
Группа |
|
“ВМ-981” OR“ВМ-982” |
Все записи, где шифр группы |
|
|
|
совпадает с ВМ-981 или ВМ-982 |
Группа |
|
NOT “ВМ-981” |
Все записи кроме записей, где |
|
|
|
шифр группы равен ВМ-981 |
Дата |
рож- |
= #01.09.81# |
Все записи, где дата рождения |
дения |
|
|
равна 1 сентября 1981 года |
Дата |
рож- |
BETWEEN #01.09.81# |
Все записи, где дата рождения |
дения |
|
AND #30.09.81# |
попадает на сентябрь 1981 года |
Дата |
по- |
>DATE( ) – 30 |
Все записи, где дата поступления |
ступления |
|
попадает в интервал – последние |
|
|
|
|
30 дней |
Дата |
по- |
YEAR ([Дата поступле- |
Все записи, где дата поступления |
ступления |
ния])=1998 |
совпадает с 1998 годом |
|
Фамилия |
“П ” или LIKE “П ” |
Все записи, где фамилия начинает- |
|
|
|
|
ся с буквы П |
Фамилия |
LIKE “ ов” |
Все записи, где фамилия заканчи- |
|
|
|
|
вается на “ов” |
Фамилия |
LIKE “[П-Я] ” или |
Все записи, где фамилия начинает- |
|
124
Поле |
Выражение в строке |
Комментарий |
|
“Условие отбора” |
|
|
>= “П” |
ся на буквы от П до Я |
Фамилия |
LEN ([ФИО])>VAL(10) |
Все записи, где фамилия содержит |
|
|
больше 10 букв |
Номер |
RIGHT([Номер зачет- |
Все записи, где номер зачетки |
зачетки |
ки];2)=21 |
заканчивается на 21 |
Стипендия |
>= 200 |
Все записи, где стипендия больше |
|
|
или равна 200 |
Логические операции «И», «ИЛИ». Условия отбора, задан- ные в одной строке, связываются по умолчанию с помощью ло- гической операции «И», заданные в разных строках – с помощью логической операции «ИЛИ». Эти операции могут быть также
заданы явно в выражении условия отбора с помощью операторов
AND и OR.
Условие отбора можно формировать с помощью Построи-
теля выражений:
активизировать ячейку в строке Условие отбора для поля, в котором задают выражение для поиска (курсор мыши устано- вить в ячейку ввода условия отбора);
щелкнуть по кнопке Построить на панели инструментов или выбрать в контекстном меню команду Построить;
задать выражение и выйти из окна.
Выполнение запроса и просмотр полученной выборки:
врежиме Конструирование щелчок по кнопке Выполнить
на панели инструментов, щелчок по кнопке Конструктор воз- вращает в режим конструирования;
вокне базы данных щелчок по вкладке Запросы, по имени запроса и по кнопке Открыть.
Добавление таблицы в схему данных запроса осуществляют
спомощью команд меню Запрос, Добавить таблицу или нажа- тием кнопки Добавить таблицу на стандартной панели инстру- ментов и далее действуют так, как при первоначальном выборе таблиц.
125
Для удаления таблицы из запроса ее выделяют щелчком и выбирают пункты меню Запрос, Удалить таблицу (или вызы- вают контекстное меню, щелкнув по имени таблицы правой кнопкой мыши, и выбирают пункт Удалить таблицу, или нажи- мают клавишу Del).
Добавление поля в бланк запроса осуществляется с помо- щью одного из действий, рассмотренных выше.
Удаление поля в бланке запроса требует предварительного выделения соответствующего столбца. Для этого надо перемес- тить курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкнуть кнопкой мыши. Далее нужно нажать клавишу Del или выполнить коман-
ды Правка, Удалить столбцы.
Для перемещения поля в бланке запроса надо выделить со-
ответствующий столбец и перетащить его в новую позицию с помощью мыши. Столбец, на место которого перемещен новый, как и все столбцы справа от него, будет сдвинут вправо.
3.19. Создание вычисляемого поля в запросе
Создание вычисляемого поля осуществляется следующим образом:
отобразить запрос в режиме Конструктор;
установить курсор на пересечение строки Поле и пустой колонки бланка запроса;
ввести выражение или использовать Построителя выражений, для этого щелкнуть по кнопке Построить на панели ин- струментов, откроется диалоговое окно Построитель выраже-
ний;
построить выражения путем выбора полей и операторов из списков двойным щелчком (или выделить одним щелчком и вставить щелчком по кнопке Вставить); для ввода в поле создан- ного выражения щелкнуть по кнопке OK.
126
Перед выражением автоматически добавляется имя поля Выражение N, где N – целое число, увеличивающееся на едини- цу для каждого нового создаваемого вычисляемого поля в запро- се. Имя вычисляемого поля, стоящее перед выражением, отделя- ется от него двоеточием. Например,
<выражение 1> : [Цена]*[Количество], где Цена и Количество – имена полей.
Имя вычисляемого поля («Выражение 1») становится заго- ловком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.
Для вычисляемых полей допускается сортировка, задание условий отбора и расчет итоговых значений, как и для любых других полей.
В вычисляемых полях можно использовать встроенные функции. Например:
функция Date формирует текущую дату;
функция Month выделяет месяц из значения поля, содер- жащего дату;
функция Dlookup возвращает значение конкретного поля из записи связанной таблицы, не участвующей в запросе;
статистические функции, позволяющие вычислять среднее значение, сумму, минимальное и максимальное значения.
Например, для выборки всех студентов, родившихся в за- данном месяце, вычисляемое поле может содержать выражение
Month([СТУДЕНТЫ]![ДАТАР]) ,
где ДАТАР – поле типа Дата/время с датой рождения в таблице СТУДЕНТЫ.
3.20. Изменение имени и формата поля в запросе
Для переименования вычисляемого поля, нужно щелкнуть по нему в бланке запроса, стереть Выражение N и внести новое имя или щелкнуть по кнопке Свойства на панели инструментов,
в окне Свойства поля во вкладке Общие ввести новое имя в строке Подпись, закрыть окно.
127
Чтобы изменить заголовок столбца, не изменяя имени по- ля, нужно поступить так же: ввести новое имя поля в строку Подпись диалогового окна Свойства. Новый заголовок появится только в таблице запроса. Имя поля исходной таблицы при этом не изменится.
Чтобы изменить формат числового поля, необходимо: поместить курсор в имя числового поля, формат которого
надо изменить, и щелкнуть по кнопке Свойства на панели инст- рументов;
щелкнуть в строке Формат поля, затем - по стрелке рас- крывающегося списка и выбрать нужный формат;
щелкнуть в строке Число десятичных знаков и выбрать из раскрывающегося списка количество знаков после запятой, закрыть окно.
3.21. Создание запроса с групповыми вычислениями
Групповые операции позволяют выделить группы записей с одинаковыми значениями в указанных полях и использовать для этих групп одну из статистических функций. В Access преду- смотрено девять статистических функций:
Sum – сумма значений некоторого поля для группы; Avg – среднее от всех значений поля в группе;
Max,Min – максимальное, минимальное значение поля в группе;
Count – число значений поля в группе без учета пустых значений;
Stdev – среднеквадратичное отклонение от среднего значе- ния поля в группе;
Var – дисперсия значений поля в группе;
First, Last – значение поля из первой или последней записи в группе.
Порядок создания запроса с использованием групповых операций:
128
создать запрос на выборку данных; в бланк запроса вклю- чить поля, по которым надо произвести группировку, и поля, по которым надо произвести статистические вычисления;
выполнить команды Вид, Групповые операции или щелк- нуть по кнопке Групповые операции на панели инструментов; в бланке запроса будет добавлена строка Групповая операция; при этом в ячейку Групповая операция для каждого поля вно- сится функция Группировка;
для тех полей, где будут проводиться групповые вычисле- ния, нужно заменить функцию Группировка на нужную группо- вую функцию через раскрывающийся в поле список.
3.22. Запрос на добавление записей
Порядок действий при создании запроса на добавление за- писей следующий:
создать стандартным образом запрос выборку данных из таблицы, записи которой нужно присоединить к другой таблице; проверить выборку, щелкнув по кнопке Выполнить на па- нели инструментов, вернуться в режим конструирования, щелк-
нув по кнопке Конструктор;
щелкнуть по стрелке раскрывающегося списка кнопки Тип запроса и выбрать команду Добавление (или выбор пунктов меню Запрос/Добавление);
в диалоговом окне указать имя таблицы, к которой будут добавлены выбранные записи;
установить переключатель в положение В текущей базе данных или В другой базе данных/Ok;
записать созданный запрос, щелкнув по кнопке Сохранить на панели инструментов; в открывшемся окне ввести имя запроса;
выйти из режима конструирования.
Для добавления записей выделить имя запроса и щелкнуть по кнопке Открыть.
В запросе должны быть сформированы записи с полями,
соответствующими полям в добавляемой записями таблице базы
129
данных. Структура записи таблицы запроса может не полностью совпадать со структурой записи таблицы, в которую добавляются записи. В записи запроса может быть меньше полей, если на поля в таблице, куда добавляются записи, не наложено требование по обязательности их заполнения.
Если имена полей выборки и дополняемой таблицы разли- чаются, то из списка полей таблицы-источника в бланк запроса нужно перетащить присоединяемые поля.
Если дополняемая таблица содержит ключевое поле, то до- бавляемые записи должны содержать такое же поле. Access не добавляет записи, если ключевое поле пусто или разные записи в нем имеют одинаковые значения.
При добавлении записей в таблицу, имеющую поле счетчи- ка, Access выполнит перенумерацию, если не включить в запрос поле счетчика. Если в полях счетчика обеих таблиц окажутся одинаковые значения, то Access не добавит записи с одинаковы- ми порядковыми номерами.
3.23.Запрос на создание новой таблицы
ВAccess можно создать новую таблицу из записей, удов- летворяющих запросу.
Порядок действий следующий:
создать и выполнить стандартным образом запрос, на ос- нове таблиц или запросов, содержащих записи, которые необхо- димо включить в новую таблицу;
в режиме Конструктор щелкнуть по пункту меню За-
прос/Создание таблицы (или по кнопке Тип запроса и выбрать команду Создание таблицы);
задать имя новой таблицы; указать, где будет таблица; Ok;
записать созданный запрос, щелкнув по кнопке Сохранить на панели инструментов; в открывшемся окне ввести имя запроса;
выйти из режима конструирования.
130
