Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс ИТУ Учебные материалы / Informatsionnie-tehnologii-upravleniya-uchebnoe-posobie.pdf
Скачиваний:
104
Добавлен:
07.06.2015
Размер:
18.76 Mб
Скачать

Правка|Схема данных). Перед редактированием связей нужно за- крыть все таблицы.

Для редактирования существующей связи нужно щелкнуть пра- вой кнопкой мыши на ее линии. В появившемся контекстном меню всего две команды: Изменить связь.. и Удалить. Выбор первой команды дает диалоговое окно Связи, где нужно изменить суще- ствующие установки.

Если в схему данных необходимо добавить новую таблицу, то нужно щелкнуть по кнопке Добавить таблицу на панели элементов

или выполнить команду Связи|Добавить таблицу. После это- го будет выведено окно Добавление таблицы где нужно указать имя добавляемой таблицы.

11.5. Запросы в MS Access

Запрос — это обращение к БД для поиска или изменения в базе данных информации, соответствующей заданным критериям.

В Access могут быть созданы следующие типы запросов:

запросы на выборку;

запросы с параметром;

перекрестные запросы;

запросы на изменение (создание таблиц, добавление и уда- ление данных в таблицах, изменение данных).

Одним из наиболеераспространенныхзапросовявляетсязапрос на выборку, который выполняет отбор данных из одной или нескольких

таблиц по заданнымпользователемкритериям,не приводящийк изме

-

нениямв самой базе данных.Результатзапросана выборку— «вирту

-

альная» таблица, которая не хранится в БД в виде таблице. Каждый раз при выполнении запроса эта таблица создается заново и при закрытии запроса она уничтожается. Запрос может осуществлять выборку ин - формации их таблиц и запросов. Запрос хранится в БД записанным на специальном языке SQL.

11.5.1. Создание запроса

Для создания запроса следует перейти на вкладку Запросы и нажать кнопку Создать. Появится окно Новый запрос для выбора

197

SaveStud.Su

способа построения запроса (рис 11.8). Конструктор — создает за- прос на основе пустого бланка запроса.

Рис. 11.8. Диалоговое окно Новый запрос

Конструктор — построение запроса «вручную».

Простой запрос — создает запрос из полей выбранной таблицы. Перекрестный запрос — создает обобщающий запрос, данные в

котором имеют вид, подобный сводным таблиц в Excel. Повторяющиеся записи — создает запрос, выбирающий повто-

ряющие записи из таблицы или простого запроса.

Записи без подчиненных — создает запрос, выбирающий из та- блицы записи, не связанные с записями из другой таблицы.

При выборе для построения запроса Конструктора через диа- логовое окно Добавление таблицы (рис. 11.9).добавляются имена та- блиц в окно конструктора запроса.

Окно Добавлениетаблицы состоит из трех вкладок, содержащих

перечниобъектов,предлагаемыхпрограммойдляпроектированиязапро

-

са: Таблицы,Запросыи Таблицыи запросы.При выборевкладкиТабли

-

цы следуетвыделитьнужнуюнам таблицуиз предложенногоспискаи

 

с помощью кнопки Добавить можно добавитьнесколькотаблиц. При

 

выборетаблицих символическоеизображениепоявляетсяв верхнейча

-

сти окна конструкторазапроса.Например,на рис. 11.10 для построения

 

запроса выбрано три таблицы: Поставщики, Товары и Поставки.

 

Нижняя часть является бланком запроса, здесь указываются поля таблиц, которые включаются в запрос, параметры запроса, а также определяется способ их отображения на экране.

198

SaveStud.Su

Рис 11.9. Окно Добавление таблицы

Рис 11.10. Окно конструктора запроса. Пример ввода условия

Добавить нужные поля в бланк запроса можно путем перета- скивания их имен из списка, находящегося в верхней части окна конструктора в строку бланка Поле. Еще один способ — выполнить двойной щелчок по имени поля.

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

Правка командой Удалить.

199

SaveStud.Su

11.5.2. Установка критериев отбора записей

При создании запроса можно задать критерии, вследствие чего по запросу будет осуществлен отбор только нужных записей. Чтобы найти записи с конкретным значением в каком либо поле, нужно ввести это значение в данное поле в строке Условие отбора.

Например, на рис. 11.10, построен запрос, по которому из данных о заказах будут выбраны те, которые выполняет фирма «Конус», наименование товара начинается на символы «Телевизор» и коли- чество более 5.

Для создания запроса с несколькими критериями пользуются различными операторами.

Можно задать несколько условий отбора, соединенных логическим оператором или (or), для некоторого поля одним из двух способов:

1) можно ввести все условия в одну ячейку строки Условие отбо - ра, соединив их логическим оператором или (or). В этом случае будут выбраны данные, удовлетворяющие хотя бы одному из условий.

Например, 4 or 5

2) ввести второе условие в отдельную ячейку строки или. Логическая операция и (and) используется в том случае, когда

должны быть выполнены оба условия.

Например, условие >2 and <5, задает выбор только заказы с количеством 3 и 4.

Чтобы объединить несколько условий отбора оператором и (and), следует указать их в одной строке.

Исключить группу данных из состава анализируемых запросом записей позволяет следующий критерий: < > (нерано).

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

Оператор Between позволяет задать диапазон значений, например: between 10 and 20

Оператор In позволяет задавать используемый для сравнения список значений. Например:

in («первый», «второй», «третий»)

Оператор Like полезен для поиска образцов в текстовых полях, причем можно использовать шаблоны:

* — обозначает любое количество (включая нулевой) символов; ? — любой одиночный символ;

# — указывает что в данной позиции должна быть цифра.

200

SaveStud.Su

Например:длявыборафамилии,начинающейсяс буквыП и с окон - чанием ''ов'' можно записать

like П*ов

Операторы для даты и времени. Можно ввести дату и время, при этом значения должны быть заключены в символы #. Например:

#10 мая 1998# >#31.12.96#

11.5.3. Сортировка данных в запросе

Данные в результирующей таблице, полученной в результате за- проса, можно упорядочить по возрастанию или убыванию. Для упо- рядочения отобранных записей необходимо указать способ сортиров- ки в строке Сортировка окна конструктора запроса (рис 11.10).

Сортировка может быть выполнена по любому количеству полей. Отметим, что самое левое поле, по которому выполняется сортиров- ка, называется главным и упорядочивание по нему выполняется в первую очередь. Чем левее расположено поле сортировки, тем стар- ше его приоритет.

11.5.4. Вычисляемые поля, построитель выражений

 

В запросеможноопределитьвычислениянадполямитаблицыи сде

-

латьвычисляемоезначениеновымполем.Такоеполеназываетсявычис

-

ляемым. Для этого в строке Поле в свободном столбце вводится формула длявычисления,причемименаполейзаключаютсяв квадратныескобки. Например, для вычисления суммы заказа можно записать выражение

Сумма: =[ Цена ]*[ Количество ]

В выражениях можно использовать следующие операторы:

арифметические: * умножение; + сложение; – вычитание; / деление; ^ возведение в степень;

соединение частей текста при помощи знака &, например:

=[ Фамилия] & “ “&[Имя]

При создании выражений для вычисляемых полей можно ис-

пользовать Построитель выражений, который можно вызвать кноп-

кой на панели инструментов. Перед обращением к Построителю запрос следует сохранить, в противном случае имена полей, встав- ленных в запрос ранее, будут недоступны. При вызове Построителя открывается окно Построитель выражений (рис. 11.11).

201

SaveStud.Su

Рис.11.11. Окно построителя выражений

В верхней части окна расположена пустая область ввода, в кото- рой создается выражение. Можно самим ввести выражение, но про- ще использовать различные кнопки, расположенные под областью ввода.

Все имена объектов, из которых строится выражение, заключе- ны в квадратные скобки, причем перед именем поля может стоять восклицательный знак (!) разделяющий имя поля и имя таблицы. Отметим, что выбор полей лучше производить из редактируемого запроса, а не из таблиц.

Если по завершении формирования выражения (например, на рисунке 11.11 задано выражение для поля, которое будет равно сум- ме заказа) щелкнуть по кнопке ОК, то полученный результат будет перенесен в запрос. В текущей ячейке появится текст выражения, перед которым будет стоять имя этого поля — «Выражениеn:», кото- рое целесообразно заменить более подходящее, например, на «Сум- ма:» (двоеточие является разделителем и он должен присутствовать в записи определения вычисляемого поля).

Построитель выражений может быть использован также для по- строения условий отбора записей.

202

SaveStud.Su

11.5.5. Запрос с группировкой

Запросы с группировкой отличаются от обычных запросов. В них поля делятся на 2 типа:

поля, по которым осуществляется группировка данных;

поля, для которых проводятся итоговые вычисления.

Для составления такого запроса, находясь в режиме конструктора, можно воспользоваться командой Групповые операции из меню Вид.

В результате этого в бланке запроса появится строка Групповая операция. Если для соответствующего поля из списка выбрать функцию Группировка (рис. 11.12), то при выполнении запроса записи по этому полю группируются (объединяются) по значениям в этом поле.

Рис. 11.12. Строка Групповая операция

Группировка в итоговом запросе производится, как правило, по небольшому числу полей (одно — два). Во всех остальных полях вводятся итоговые (агрегатные) функции.

Access предоставляет ряд агрегатных функций, обеспечивающих вычисление итогов в групповых операциях. Функцию можно задать, набрав на клавиатуре ее имя в строке Групповая операция или вы- брать ее из раскрывающегося списка.

Основные групповые функции:

SUМ — вычисляет сумму всех значений заданного поля (для числовых или денежных полей), отобранных запросом;

203

SaveStud.Su

AVG — вычисляет среднее значение в тех записях определен- ного поля, которые отобраны запросом (для числовых или денежных полей);

MIN — выбирает минимальное значение в записях определенно- го поля, отобранных запросом;

MAX — выбирает максимальное значение в записях определен- ного поля, отобранных запросом;

COUNT — вычисляет количество записей, отобранных запросом в определенном поле, в которых значения данного поля отличны от нуля.

11.5.6. Выполнение запроса

Готовый запрос выполняется при выборе кнопки «Открыть» в окне БД. Из режима конструктора запрос выполняется по команде За-

пуск из меню Запрос или по кнопке панели инструментов. В результате будет получена таблица с данными, определенными этим запросом.

Переключение в режим Конструктора и обратно в режим отобра- жения результатов запроса может быть выполнен с помощью левой

кнопки Вид на панели инструментов: или — она ме- няется в зависимости от режима, в котором мы находимся. Отметим, что выполнение запроса-действия при этом не происходит.

Например, на рис 11.13 показан результат запроса, построенного по запросу рис. 11.12.

Рис. 11.13. Результат выполненного запроса

204

SaveStud.Su