Access_теория

реклама
1. Основные понятия теории баз данных
База данных представляет собой совокупность хранимых операционных
данных, используемых прикладными системами некоторого предприятия.1
Это определение требует пояснения. Любое предприятие неизбежно
должно хранить и обновлять большое количество данных, отражающих его деятельность. Это и есть «операционные данные». Для иллюстрации понятия операционных данных рассмотрим случай Holding-центра. Предположим в Holding-центре хранятся данные о всех товарах, реализуемых со складов фирм Holding-центра; о складах, где хранятся товары; о фирмах, которые занимаются
оптовыми продажами товаров со складов и т.д. Все перечисленное представляет собой те основные объекты, данные о которых записаны в БД:
Склады
Продажи
Хранение
Товары
Фирмы
Между этими объектами существуют связи или отношения (эти связи
представлены стрелками). Например, существует связь между Фирмами и
Складами: каждая фирма имеет несколько складов, и каждый склад принадлежит конкретной фирме. Эти связи составляют такую же часть операционных
данных, как и объединяемые ими объекты. Поэтому они также должны быть
представлены в БД.
Чтобы понять процесс электронной обработки данных, необходимо знать
ряд терминов, которые применяются при описании и представлении данных.
Предметная область – часть реального мира, подлежащая изучению с
целью автоматизации процесса управления в этой сфере (например, банк, академия, больница).
Объект – элемент информационной системы, сведения о котором хранятся в базе данных. Объектом может быть человек, предмет, событие, место или
явление (например, в банковском деле примерами объектов могут служить клиенты, банковские счета, ссуды по закладным и т.п.).
Атрибут (или элемент данных) – информационное отображение свойств
объекта. Каждый объект характеризуется некоторым набором атрибутов
(например, клиент банка имеет такие атрибуты как фамилия, адрес и, возможно, идентификационный номер).
Ключевой элемент данных. Некоторые элементы данных обладают интересным свойством. Зная значение, которое принимает такой элемент данных
объекта, можно идентифицировать значения, которые принимают другие элементы данных этого же объекта. (Например, зная идентификационный номер
клиента, можно узнать фамилию клиента, его адрес.) Элементы данных, по которым можно определить другие элементы данных, называются ключевыми.
1
К.Дейт. Введение в системы баз данных. М., Наука, 1980г.
3
Совокупность значений связанных элементов данных образует запись
данных.
Система управления базой данных (СУБД) – программа, которая
управляет всем доступом к базе данных.
Система управления базами данных основывается на использовании
определенной модели данных. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. В начале 60х годов прошлого века в СУБД стали применяться иерархическая и сетевая
модели данных. В начале 70-х г.г. была предложена реляционная модель данных. Главными достоинствами реляционного подхода являются его простота и
теоретическое обоснование. Реляционная модель данных основана на хорошо
проработанной теории отношений (Relation – отношение). При проектировании
базы данных применяются строгие методы, построенные на нормализации отношений. Для других моделей таких методов проектирования в настоящее время нет.
Далее речь пойдет о реляционной модели данных.
Данные в реляционной модели представляются в виде таблицы. В терминологии реляционной модели таблицы называются отношениями. Каждый
столбец в таблице является атрибутом. Значения в столбце выделяются из домена (домен суть множество значений, которые может принимать некоторый
атрибут). Строки таблицы называются кортежами. В соответствии с традиционной терминологией можно сказать, что столбцы таблицы представляют элементы данных, а строки – записи.
Введем понятие нормализации. Единственными отношениями, допустимыми в реляционной модели, являются те, которые удовлетворяют следующему условию: каждое значение в отношении, т.е. значение каждого атрибута в
каждом кортеже должно быть атомарным (неделимым). Другими словами, на
пересечении любой строки и любого столбца в таблице должно быть точно
одно значение, а не множество значений.
Отношение, удовлетворяющее приведенному условию, называется нормализованным.
Ненормализованное отношение
(атрибут «Количество товара» сам
является отношением)
Количество товара
№Склада
КодТовара Кол–во
1
100
16
2
200
3
100
Нормализованное отношение
№Склада
16
16
16
КодТовара
1
2
3
Кол–во
100
200
100
Атрибут является первичным ключом отношения, если его значения однозначно идентифицируют кортежи (строки) данного отношения.
Не каждое отношение будет иметь первичный ключ в виде единственного
атрибута. Но каждое отношение будет иметь некоторую комбинацию атрибу4
тов, которые взятые вместе, будут однозначно идентифицировать кортеж в отношении. Тогда первичный ключ называется составным первичным ключом
(существование такой комбинации гарантируется тем, что отношение является
множеством).
Атрибут отношения R1 является внешним ключом, если этот атрибут –
не первичный ключ отношения R1, но его значения являются значениями первичного ключа некоторого отношения R2.
Ключи первичный и внешний представляют собой средства выражения связей между кортежами.
2. Система управления базами данных MS Access
MS Access представляет собой систему обслуживания реляционных баз
данных.
Прежде чем начинать практическую работу с MS Access, полезно получить общее представление об этой программе, попытаться понять взаимосвязь
основных компонентов MS Access с тем, чтобы ориентироваться внутри СУБД.
2.1 Архитектура MS Access
MS Access называет объектами все, что может иметь имя (в смысле
Access). В базе данных Access основными объектами являются таблицы, запросы, формы, отчеты, страница доступа к данным, макросы и модули.
Таблица – объект, который определяется пользователем и используется
для хранения данных. Каждая таблица содержит информацию о субъектах
определенного типа (например, студентах). Поля (столбцы) таблицы служат
для хранения различных характеристик субъектов (например, фамилий, адресов
студентов), а каждая запись (строка) содержит сведения о конкретном субъекте
(например, данные о студенте по фамилии Иванов). Для каждой таблицы можно определить первичный ключ (одно или несколько полей, имеющих уникальные для каждой записи значения) и один или несколько индексов, ускоряющих доступ к данным.
Запрос – объект, позволяющий пользователю получить нужные данные
из одной или нескольких таблиц. Для определения запроса можно использовать
бланк QBE (Query By Example, запрос по образцу) или написать инструкцию
SQL. Можно создать запросы на выборку, обновление, удаление, или добавление данных. С помощью запросов можно также создавать новые таблицы, используя данные из одной или нескольких существующих таблиц.
Форма – объект, предназначенный в основном для ввода и редактирования данных. Форма представляет собой бланк, подлежащий заполнению, или
маску–формуляр, позволяющую ограничить объем информации, доступной
пользователю.
Отчет – объект, предназначенный для вычисления итогов и печати выбранных данных.
Страница доступа к данным – объект, содержащий файл HTML и вспомогательные файлы, обеспечивающий доступ к данным из MS Internet Explorer.
5
Можно опубликовать страницы доступа к данным в своей корпоративной интрасети, что позволит другим пользователям, установившим Office 2000 и Internet Explorer версии 5 или более поздней, находить, просматривать и изменять
ваши данные.
Макрос – объект, представляющий собой структурированное описание
одного или нескольких действий, которые должен выполнить MS Access в ответ на определенное событие.
Модуль – объект, содержащий программы на языке Visual Basic для
приложений, применяемые для настройки, оформления и расширения БД.
В таблицах хранятся данные, которые можно извлекать с помощью
запросов. Используя формы, можно выводить данные на экран или изменять
их. Формы и отчеты получают данные как непосредственно из таблиц, так и через запросы. Для выполнения нужных вычислений и форматирования данных
запросы могут использовать встроенные функции или функции, созданные с
помощью VBA.
События1, происходящие в формах или отчетах, могут запускать макросы или процедуры VBA.
С помощью макросов и модулей можно изменять ход выполнения приложения; открывать, фильтровать и изменять данные в формах и отчетах; выполнять запросы и создавать новые таблицы.
2.2 Импорт данных
Хотя можно использовать MS Access как замкнутую систему, одним из
основных преимуществ данного продукта (что ясно из самого его названия Access – «доступ») является возможность работы с самыми разнообразными данными других баз, электронных таблиц или текстовых файлов.
Работая с собственной БД, можно импортировать или связывать данные, хранящиеся в других БД Access, в файлах dBASE и в любых других БД
SQL, поддерживающих стандарт ODBC. Можно также экспортировать данные
из таблиц Access в БД, электронные таблицы или текстовые файлы.
ODBC (Open Database Connectivity, Открытый доступ к данным)
В Access для чтения, вставки, обновления и удаления данных используется язык SQL (Structured Query Language – Структурированный язык
запросов). Этот язык был создан в 1970-х годах в компании IBM для реляционных БД и в дальнейшем утвержден в качестве их официального стандарта.
В идеале любой программный продукт, который говорит на SQL, должен уметь общаться с любой понимающей тот же язык программой. Но по
разным причинам появились различные диалекты или расширения языка SQL,
отличающиеся от официального стандарта.
1
Событие – любое изменение состояния объекта MS Access.
6
В 90-х годах был разработан интерфейс Common Language Interface
(CLI, Стандартный интерфейс языка) для всех основных диалектов языка SQL.
Формализованный интерфейс получил название ODBC.
2.2.1 Импорт объектов MS Access
Чтобы импортировать объект из другой БД Access, выполните следующие действия.
1. Откройте базу данных Access, в которую вы хотите импортировать объект.
2. Выберите команду Файл/ Внешние данные/ Импорт. MS Access откроет
окно диалога Импорт.
3. В раскрывающемся списке Тип файлов выберите MS Access, затем найдите
нужный файл базы данных.
4. После щелчка на кнопке Импорт MS Access откроет окно диалога Импорт
объектов. В этом окне выделите имя или имена импортируемых объектов.
2.2.2 Импорт данных из электронных таблиц, созданных в MS Excel
MS Access позволяет импортировать данные из файлов электронных таблиц, созданных в MS Excel версии 2 и выше. Можно импортировать всю электронную таблицу или только ее часть, как в новую, так и в существующую таблицу Access. Если первая строка электронной таблицы содержит заголовки
столбцов, можно использовать их в качестве имен полей новой таблицы Access.
MS Access определяет типы данных для полей новой таблицы, анализируя значения в первых импортируемых строках.
Чтобы импортировать электронную таблицу в базу данных Access, выполните следующие действия.
1. Откройте базу данных Access, в которую вы хотите импортировать электронную таблицу.
2. Выберите команду Файл/ Внешние данные/ Импорт. MS Access откроет
окно диалога Импорт.
3. В раскрывающемся списке Тип файлов выберите Ехcel, затем найдите нужный файл, содержащий импортируемую электронную таблицу.
4. После щелчка на кнопке Импорт MS Access откроет окно мастера импорта
электронных таблиц, следуйте его указаниям. В одном из окон появится
предложение определить первичный ключ таблицы Access. Можно создать
поле таблицы с типом данных Счетчик. Или, если Вы планируете включить
в первичный ключ несколько полей, установите флажок «Не создавать
ключ». Позднее Вы откроете таблицу в режиме конструктора и определите
нужный первичный ключ.
3. Проектирование базы данных
Проектирование базы данных (БД) представляет собой длительный, трудоемкий и слабо формализованный процесс, от которого зависит жизнеспособность и эффективность проектируемой БД, ее способность к развитию. Если Вы
плохо спроектировали БД, это приведет к необходимости постоянно ее переделывать.
7
Результатом проектирования должны стать таблицы, представляющие
объекты и их взаимосвязи.
В реляционной модели допускаются только нормализованные отношения.
(нормализованным отношением называется отношение, каждое значение которого является атомарным (неделимым)).
Процесс проектирования – есть процесс преобразования форм, т.е. процесс приведения произвольного отношения к эквивалентной совокупности отношений в четвертой нормальной форме (4НФ). Процесс проектирования можно разбить на несколько шагов.
1-й шаг. Произвольное отношение приводится к первой нормальной форме (1НФ).
2-й шаг. Отношение, находящееся в 1НФ, приводится к эквивалентной
совокупности отношений, находящихся во второй нормальной форме (2НФ).
3-й шаг. Отношение, находящееся в 2НФ, приводится к эквивалентной
совокупности отношений, находящихся в третьей нормальной форме (3НФ).
На практике процесс нормализации, как правило, на этом этапе заканчивается.
Введем ряд определений.
Отношение находится в 1НФ тогда и только тогда, когда все входящие
в него элементы содержат только атомарные (неделимые) значения.
Это определение просто устанавливает, что любое нормализованное отношение находится в 1НФ.
Первостепенно важным понятием является понятие функциональной зависимости (внутри отношения).
Если задано отношение R, то атрибут Y отношения R функционально
зависит от атрибута X отношения R тогда и только тогда, когда каждое значение X в R в каждый момент времени связано точно с одним значением Y.
Например, в отношении Товары нашей реляционной модели данных
«Продажи» каждый из атрибутов Наименование, Марка, Цена функционально
зависит от атрибута КодТовара. То есть для определенного значения КодТовара
существует в точности одно соответствующее значение каждого из атрибутов
Наименование, Марка, Цена.
Можно представить функциональную зависимость с помощью диаграммы:
Наименование
КодТовара
Марка
Цена
В случае составного ключа вводится понятие функционально полной
зависимости.
8
Атрибут Y находится в полной функциональной зависимости от
атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X (X – составной ключ).
Например, атрибут Количество находится в полной функциональной
зависимости от составного ключа КодТовара и НомерСклада.
КодТовара
Количество
НомерСклада
Приведем другой пример:
Наименование
КодТовара
Марка
Цена
НомерСклада
Количество
Атрибут Количество находится в полной функциональной зависимости
от составного ключа КодТовара и НомерСклада. Атрибуты Наименование,
Марка, Цена не находятся в полной функциональной зависимости от
составного ключа КодТовара и НомерСклада, так как эти атрибуты
функционально зависят от части составного ключа, а именно от атрибута
КодТовара.
В таком случае при проектировании данное отношение разбивают на два:
=
Код Товара
НомерСклада
Наименование
Количество
+
КодТовара
Марка
Цена
Атрибут Y находится в транзитивной зависимости от атрибута Х,
если он находится в функциональной зависимости от атрибута Z, а атрибут Z
– в функциональной зависимости от атрибута X.
9
АдресСклада
НомерСклада
Телефон
КодФирмы
АдресФирмы
Атрибут АдресФирмы находится в транзитивной зависимости от
атрибута НомерСклада.
В таком случае при проектировании данное отношение разбивают на два:
=
НомерСклада
+
КодФирмы
АдресФ
Отношение R находится во 2НФ, если оно находится в 1НФ и каждый
неключевой атрибут функционально полно зависит от первичного ключа.
Отношение R находится в 3НФ, если оно находится во 2НФ и при этом
любой неключевой атрибут зависит от ключа нетранзитивно.
Отношение R находится в 4НФ, если оно находится в 3НФ и каждый
кортеж отношения состоит из
значения первичного ключа, которое
идентифицирует некоторый объект, и из множества взаимно независимых
произвольных значений атрибутов, некоторым образом описывающих этот
объект.
4НФ заключает в себя очень простую и общедоступную идею. Понятие
4НФ можно на интуитивном уровне сформулировать так: «один факт хранится
один раз».
Важнейшей проблемой, решаемой при проектировании баз данных,
является создание такой их структуры, которая бы обеспечивала минимальное
дублирование информации и упрощала процедуры обработки и обновления
данных.
Введение нормализации отношений при разработке модели базы данных
обеспечивает ее работоспособность. Это вовсе не означает, что
ненормализованная
концептуальная
модель
обязательно
окажется
неработоспособной. Просто ненормализованная модель может вызвать
определенные трудности при работе базы данных и ее модификации.
Уточним шаги нормализации.
1-й шаг заключается в образовании двумерной таблицы, содержащей
элементы данных.
10
2-й шаг нормализации состоит в том, чтобы выделить ключи и зависящие
от них атрибуты. Для того чтобы привести отношение ко 2НФ, нужно выделить
группы атрибутов, зависящие от частей составного ключа. Эти группы могут
образовывать отдельные отношения (таблицы). Выделение из отношения,
находящегося в 1НФ, таких отношений, в которых неключевые атрибуты
зависят только от ключа в целом, называется приведением ко 2НФ.
3 шаг заключается в выделении в отдельные отношения те отношения, в
которых атрибуты находятся в транзитивной зависимости от ключа.
Процессу приведения отношения произвольной формы к 4НФ
предшествует большая предварительная работа по созданию этого первичного
или произвольного отношения. Это не менее важный момент в проектировании
базы данных.
Создание базы данных, которая удовлетворяла бы текущим и
перспективным информационным потребностям предприятия связано с
необходимостью проектирования концептуальной модели предметной области.
Проектирование концептуальной модели основано на анализе решаемых
на этом предприятии задач по обработке данных. Концептуальная модель
включает описания объектов и их взаимосвязей. При проектировании
концептуальной модели все усилия разработчика должны быть направлены на
структуризацию данных и выявление взаимосвязей между ними.
4. Пример проектирования БД
Задача: Разработать БД реализации товаров со складов фирмами Холдинг-центра.
Пояснения и ограничения:
Холдинг – это объединение четырех фирм: Citilink, Dinikin, Elce, Lizarin.
Каждая из этих фирм имеет несколько складов в Москве, где хранятся товары.
Номенклатура товаров единая для Холдинг-центра. Любой товар может
храниться на одном или нескольких складах; на каждом складе хранятся различные товары.
Со складов осуществляется оптовая торговля. Каждая фирма осуществляет продажи только со своих складов.
Исследование предметной области, анализ данных, установление связей
между данными (авторы не ставили целью подробно рассматривать этот этап
проектирования) позволили создать первичное отношение:
С целью наглядности в таблице заполнены не все поля.
11
Выделим ключи и зависящие от них атрибуты:
1. Атрибуты Название Фирмы, Адрес Фирмы, Телефон Фирмы, находятся в функциональной зависимости от Кода фирмы;
2. Атрибуты АдресСклада, Телефон, Код фирмы (т.к. каждый склад
принадлежит конкретной фирме) находятся в функциональной зависимости от поля № склада;
3. Атрибуты Наименование, Марка, Цена находятся в функциональной зависимости от поля Код Товара.
4. Атрибут Количество (это количество данного товара, хранящегося
на данном складе) находится в полной функциональной зависимости от составного ключа Код товара, № склада.
5. Атрибуты Количество проданного товара и Скидка находятся в
полной функциональной зависимости от составного ключа Дата
Продажи, Код товара, № склада.
Таким образом, из первичного отношения образовалось пять отношений:
Склады
№ склада
АдресСклада
Телефон
КодФирмы
Фирмы
КодФирмы
НазваниеФирмы
АдресФирмы
Телефон
Товары
КодТовара
Наименование
Марка
Цена
12
Хранение
Продажи
КодТовара
№ склада
Количество
Да
та
Пр
одаСочетание полей КодТовара, № склада определяется жи
в таблице Хранение.
Чтобы избежать противоречивости данных (нельзя продать товар со склада,
если он там не хранится) создадим поле ID в таблице Хранение, которое «закрепит» сочетания КодТовара – № склада. И будем использовать его в таблице
Продажи.
Тогда получим следующую схему данных:
5. Соно-
здать
находясь
окне MS
здание
вой (пустой)
базы
данных
Чтобы соновую БД,
в главном
Access:
1.1.Выберите команду Создать базу данных… (меню Файл).
2. Перейдите на вкладку Общие с ярлыком Новая база данных.
3. Введите имя новой БД в поле «Имя файла».
4. Нажмите кнопку Создать.
MS Access открывает окно для создания базы данных.
5.1 Создание таблицы в режиме конструктора
Существует несколько инструментов для создания таблиц в Access (режим таблицы, Конструктор, Мастер таблиц, Импорт таблиц). Но гораздо полезнее изучить технологию построения таблиц в режиме конструктора, т.к. этот
инструмент предоставляет ряд дополнительных возможностей для настройки
таблиц.
Создание таблицы в MS Access осуществляется в окне базы данных.
1. Перейдите на вкладку Таблицы и нажмите кнопку Создать.
2. В появившемся окне диалога Новая таблица выберите пункт конструктор.
13
Рисунок 1. Таблица в режиме конструктора
В верхней части окна таблицы в режиме конструктора расположены
столбцы, предназначенные для ввода имени, типа данных и краткого описания
полей. В нижней части окна таблицы в режиме конструктора отображаются
свойства текущего поля.
Определение полей
В столбце Имя поля печатаются имена полей таблицы. Имя поля может
содержать до 64 символов, включая пробелы, за исключением точки, восклицательного знака и квадратных скобок.
В столбце Тип данных определяется тип данных этого поля.
В столбце Описание печатаются комментарии, описывающие данное
поле.
Типы данных
MS Access поддерживает девять типов данных:
Т
Использование
Рази
мер
п
д
а
н
н
ы
х
Текстовый
Поле МЕМО
Числовой
Алфавитно-цифровые данные
Алфавитно-цифровые данные
Числовые данные
До 255 байт
До 64 000 байт
1,2,4,8 или 12 байт
14
Дата/время
Денежный
Счетчик
Даты и время
8 байт
Данные о денежных суммах
8 байт
Уникальное длинное целое, генерируется 4 байта
Access при создании каждой новой записи
Логический
Логические данные
1 бит
Поле объекта Картинки, диаграммы
До 1 Гбайт
OLE
Гиперссылка Адрес ссылки (путь) на документ или файл До 2048 символов
Для каждого поля таблицы выберите тип данных в соответствии с назначением и использованием поля.
Для символьных данных следует выбирать Текстовый тип. Поле Мемо
используется в случаях, когда размер текста превышает 255 символов или в
тексте встречаются такие символы форматирования, как табуляция или возврат
каретки.
Тип данных Дата/время используется для хранения календарных дат или
значений времени и позволяет выполнять вычисления в единицах измерения
времени: минутах, секундах, часах, днях, месяцах и годах.
Тип данных Счетчик специально предназначен для автоматической генерации значений первичного ключа. Таблица не может содержать более одного
поля с таким типом данных.
Логический тип данных используется для хранения значений Истина и
Ложь. Он особенно полезен, когда нужны флажки, отмечающие оплаченные
счета, выполненные заказы и т.п.
Поле OLE позволяет хранить такие данные, как рисунки, диаграммы или
звуковые фрагменты, которые могут иметь динамические связи с другими приложениями Windows.
Тип данных Гиперссылка предназначен для хранения простых или сложных «ссылок» на внешний файл или документ.
Мастер подстановок
Кроме перечисленных выше девяти типов данных Access предоставляет
мастер подстановок, который, в частности, помогает заполнить поля внешних
ключей, не нарушив целостности данных. Кроме того, мастер помогает установить свойства подстановки для кодового поля основной таблицы таким образом, что вместо кодов будут видны более информативные значения из таблицы подстановок.
В первом окне мастера необходимо выбрать, откуда столбец подстановок
получает значения: из фиксированного набора (и тогда этот столбец Вы должны будете сами ввести в следующем окне мастера) или из другой таблицы или
запроса.
В следующем окне выберите таблицу, в которой находятся подстановочные значения. Далее выберите поля таблицы, которые вы хотите включить в
список подстановки (включите ключевое поле и одно или несколько описательных полей, которые помогут вам различать элементы столбца подстановки).
15
Свойства полей
Для каждого поля таблицы можно задать значения свойств, список которых зависит от выбранного типа данных. Некоторые значения свойств устанавливаются по умолчанию.
Свойство
Размер поля
Новые значения
Назначение
Задает максимальное число символов для ввода в данное поле
Определяет способ генерации новых значений для поля счетчика
Формат поля
Задает формат вывода значений данного поля
Число десятичных зна- Определяет число десятичных знаков, используемых при отобков
ражении чисел
Маска ввода
Задает маску ввода, облегчающую ввод данных в поле
Подпись
Определяет более содержательное название поля, которое выводится в качестве подписи поля
Значение по умолчанию Позволяет указать значение, автоматически вводящееся в поле
при создании новой записи
Условие на значение
Определяет требования к данным, вводимым в поле
Сообщение об ошибке
Позволяет указать текст сообщения, выводящегося на экран,
если введенные данные нарушают условие, определенное в
свойстве Условие на значение
Обязательное поле
Указывает, требует ли поле обязательного ввода значения
Пустые строки
Определяет, допускается ли ввод в данное поле пустых строк
(«»)
Индексированное поле
Определяет индекс, создаваемый по одному полю
Прокомментируем некоторые свойства.
Для символьных данных обычно выбирают тип данных текстовый.
Свойство Размер поля определяет объем памяти, необходимый для хранения
данных (по умолчанию 255 символов). Указав максимальную длину текстового
поля в свойстве Размер поля, можно сэкономить память, необходимую для
хранения данных. Например, очевидно, что для поля Название Фирмы достаточно установить Размер поля 20 символов.
Свойство Подпись. Несмотря на то, что Access разрешает использовать
пробелы в любых именах, целесообразнее обходиться в именах полей без пробелов. Тогда можно использовать свойство Подпись, чтобы задать более содержательное название поля с пробелами, которое Access будет выводить в элементах управления форм и в заголовках отчетов.
Свойство Условие на значение. Заданное условие всегда будет проверяться при вводе или изменении значения поля в таблице. Access не позволит
ввести данные, не удовлетворяющие этому условию.
Условие на значение задается выражением, которое состоит из операторов сравнения и операндов.
Операторы сравнения: <, <=, >, >=, =, <>, IN (проверяется на равенство
любому значению из списка), BETWEEN (проверяется, что значение поля нахо16
дится в заданном диапазоне; верхняя и нижняя границы разделяются логическим оператором AND); LIKE (проверяется соответствие текстового поля заданному шаблону символов).
Если выражение не содержит оператора, Access использует оператор «=».
Можно использовать несколько сравнений, связанных логическими операторами OR, AND.
Текстовые значения всегда должны заключаться в кавычки. Например,
чтобы ограничить ввод в поле Название Фирмы двумя фирмами Sitilink и
Lizarin можно использовать в качестве условия на значение для этого поля выражение: «Sitilink» OR «Lizarin», или IN («Sitilink», «Lizarin»). Если в качестве
операнда используется дата, она должна быть заключена в символы (#), например, BETWEEN #01/01/2000# AND #31/12/2000#. Тогда Access позволит вводить в данное поле только данные за 2000 год.
Оператор LIKE проверяется соответствие текстового поля заданному шаблону символов. Для задания шаблона используются следующие подстановочные символы:
? – один произвольный символ;
* – любое (включая нулевое) количество произвольных символов; используется для замены последовательности символов;
# – одна произвольная цифра;
[ ] – позволяют определить условие, чтобы определенная позиция текстового поля содержала только символы, указанные в квадратных скобках; [А–Я] – любая буква; [0–9] – любая цифра;
! – позволяет определить условие, чтобы указать, что определенная позиция может содержать любой не входящий в список символ: условие
LIKE«[!0–9АВ]» проверяет строку, начинающуюся с любого символа
кроме цифры и букв А и В.
Индексированное поле. Индекс - средство MS Access, ускоряющее поиск и сортировку в таблице. Ключевое поле таблицы индексируется автоматически. Не допускается создание индексов для полей типа MEMO и «Гиперссылка» или полей объектов OLE.
Задание маски ввода
Чтобы облегчить ввод форматированных данных (например, номеров
телефонов или дат), Access позволяет задать маску ввода.
Некоторые символы, используемые для задания маски ввода:
Символ маски
0
9
#
L
?
Описание
В данную позицию должна быть введена цифра; не допускается ввод знаков «плюс» и «минус»
В данную позицию может быть введена цифра или пробел; не допускается
ввод знаков «плюс» и «минус»
В данную позицию может быть введена цифра, пробел, знак «плюс» или
«минус»
В данную позицию должна быть введена произвольная буква
В данную позицию может быть введена буква
17
А
а
&
\
>
<
В данную позицию должна быть введена буква или цифра
В данную позицию может быть введена буква или цифра
В данную позицию должен быть введен произвольный символ или пробел
Указывает, что следующий символ следует рассматривать в качестве постоянного символа.
Преобразует все цифры справа к верхнему регистру
Преобразует все цифры справа к нижнему регистру
Маска ввода состоит из трех частей, разделенных точкой с запятой. Первая часть представляет собственно маску ввода, состоящую из символов маски
и постоянных символов. Необязательная вторая часть указывает Access, нужно
ли сохранять постоянные символы маски в этом поле (0 – постоянные символы
маски включаются в значение поля, 1 – сохраняться будут только введенные
символы). Необязательным третьим компонентом маски ввода является символ,
используемый для указания заполняемых при вводе позиций (по умолчанию используется знак подчеркивания).
Проще всего задавать маску ввода с помощью мастера по созданию масок
ввода. Для этого щелкните на поле (в верхней части окна таблицы в режиме
конструктора), для которого необходимо создать маску ввода. А затем – на
ячейке свойства Маска ввода, расположенной в нижней части этого окна. Справа появится кнопка с тремя точками – кнопка построителя. Щелкните на ней ,
чтобы воспользоваться помощью мастера по созданию масок ввода.
Создание первичного ключа
Каждая таблица в реляционной базе данных должна иметь первичный
ключ.
Первичный ключ создается в режиме Конструктора таблиц:
1. Выделите поле (или поля в случае составного ключа), которое должно стать
полем первичного ключа.
2. Вызовите команду Ключевое поле (меню Правка) или нажмите кнопку
КЛЮЧ панели инструментов.
1.
2.
3.
4.
Определение связей
Создав несколько таблиц, необходимо связать их друг с другом.
Выберите команду Схема данных (меню Сервис).
Используя команду Добавить таблицу из меню Связи, укажите имена таблиц, которые должны быть связаны. Названия каждой из таблиц со списками полей появятся в соответствующем окне.
Установите курсор в любую из таблиц на поле, по которому будет установлена связь и "перетащите" это поле на связующее поле другой таблицы.
Активизируйте флажок Обеспечение целостности данных. Данное действие позволит предотвратить случайное удаление или изменение связанных
данных. Установите флажок Каскадное обновление связанных полей, тогда при изменении ключевого поля главной таблицы автоматически будут
изменяться и соответствующие значения связанных записей. Установите
флажок Каскадное удаление связанных полей, тогда при удалении записи
18
в главной таблице будут удалены и все связанные записи в подчиненной таблице.
Сжатие базы данных
В результате удаления одних и создания других объектов файл базы данных может стать фрагментированным. С течением времени он разрастается и
занимает гораздо больше места, чем необходимо для хранения всех объектов и
данных. Поэтому следует периодически сжимать базу данных. Перед сжатием
базы данных все объекты БД должны быть закрыты. Выберите команду Сервис/ Служебные программы /Сжать и восстановить базу данных.
5.2 Работа с данными таблицы
Вставка в запись рисунка или объекта
Рисунок или объект добавляется из имеющегося файла либо создается в
приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.
Чтобы добавить рисунок или любой другой объект в запись:
1. Перейдите в режим Конструктора таблиц.
2. Добавьте поле объекта OLE.
3. В режиме Таблицы установите курсор в нужную клетку и выполните команду Объект (меню Вставка).
Если объект вставляется из существующего файла:
1. В появившемся окне выберите переключатель СОЗДАТЬ ИЗ ФАЙЛА.
2. Введите полное имя добавляемого файла в поле «Файл» или нажмите кнопку Обзор и выберите имя требуемого файла.
3. Нажмите кнопку ОК.
Если объект нужно создать:
1. Выберите тип создаваемого объекта в поле «Тип объекта» (например, Точечный рисунок Paintbrush).
2. Нажмите кнопку ОК.
3. После создания рисунка или объекта в приложении OLE выполните команду
Выход (меню Файл) или Выход и возврат (меню Файл) приложения OLE.
Подтвердите обновление объекта в MS Access.
1.
2.
3.
4.
5.3 Просмотр данных в виде формы
Просмотр БД в виде формы позволяет видеть только одну запись.
Для автоматического создания простой формы:
Нажмите кнопку ОКНО БАЗЫ ДАННЫХ панели инструментов для перехода в соответствующее окно
Щелкните на вкладке ТАБЛИЦА.
Выберите нужную таблицу.
Выберите команду Автоформа ( меню Вставка).
19
5.4 Добавление записей с помощью формы
С помощью формы можно добавлять записи в БД. Для этого в окне формы следует щелкнуть на кнопке Новая запись и ввести новые данные в пустые
поля формы.
5.5 Поиск и замена данных
1. В окне БАЗА ДАННЫХ выберите вкладку ТАБЛИЦА или ФОРМА, а затем
дважды щелкните на имени соответствующего объекта, в котором хотите
осуществить поиск.
2. Щелкните в любом месте поля, в котором будет осуществляться поиск.
3. Щелкните на кнопке НАЙТИ панели инструментов или выберите команду
Найти… (меню Правка).Появляется диалоговое окно ПОИСК В ПОЛЕ. Заголовок окна содержит наименование соответствующего поля.
4. В поле "Образец" введите последовательность символов, которую нужно
искать.
5. В поле "Совпадение" укажите: С начала поля, если данные по которым ведется поиск известны целиком, С любой частью поля, если поиск ведется
по части данных, которая может оказаться в различных областях поля,
например, по первым или последним трем символам.
6. Установите область и направление поиска.
7. Щелкните на кнопке НАЙТИ.
8. Если осуществляется поиск более чем одной записи, то для продолжения поиска щелкните на кнопке НАЙТИ ДАЛЕЕ.
9. Если других записей не найдено, Microsoft Access запрашивает, намерены ли
Вы продолжить поиск, начав с самой первой записи таблицы.
10.Щелкните на кнопке ЗАКРЫТЬ, чтобы закрыть диалоговое окно.
Для выполнения замены данных используйте команду Заменить из меню
Правка.
5.6 Сортировка данных
Для выполнения сортировки данных в таблице или форме:
1. Выберите в таблице или форме поле сортировки. В режиме таблицы выделите столбец для сортировки.
2. Для выполнения сортировки по возрастанию (А-Я) или по убыванию (Я-А)
нажмите соответствующую кнопку панели инструментов или выберите команду Сортировка (меню Записи).
5.7 Фильтрация данных
Фильтрация данных позволяет выбрать из БД только те записи, которые
удовлетворяют некоторому условию.
В MS Access существует четыре вида фильтров:
1. Фильтр по выделенному фрагменту: определяет какие записи выводятся на
экран путем выделения данных в таблице в Режиме Таблицы (в том случае,
если выделенный фрагмент отсутствует, по умолчанию в качестве условия
воспринимается значение той ячейки, в которой стоял курсор).
20
2. Обычный фильтр: по команде Изменить фильтр определяет, какие записи
выводятся на экран путем выбора в качестве условия значения из списка значений каждого поля. (Использование закладки ИЛИ внизу экрана позволяет
накладывать несколько условий на значения одного поля).
3. В Поле Фильтр для: (контекстного меню) условие задается непосредственно в контекстном меню для того поля, в котором это меню вызывалось.
4. Расширенный фильтр: позволяет проводить не только фильтрацию, но одновременно и сортировку по возрастанию или убыванию по нескольким полям одновременно.
В режиме работы с таблицами выберите команду Фильтр/ Расширенный фильтр (меню Записи). В окне ФИЛЬТР укажите все параметры интересующих записей, начав с указания поля, для которого нужно установить условия:
1. Перетащите выбранное имя поля в первую клетку строки "Поле" бланка
фильтра или из предложенного в строке "Поле" бланка фильтра списка выберите нужное поле, щелкнув на стрелке в правой части клетки поля.
2. В клетку "Условие отбора" введите с клавиатуры соответствующее условие.
В качестве условия может быть использовано любое выражение и подстановочные символы (*, ?, #, [] и др.)
3. Нажмите клавишу Enter. Microsoft Access добавляет к вашему критерию
недостающие символы (кавычки - для текста, знак # - для даты и т.д.)
4. Щелкните на кнопке ПРИМЕНИТЬ ФИЛЬТР панели инструментов или выберите команду Применить фильтр (меню Фильтр).
Для того чтобы отобразить все записи, выберите команду Удалить
фильтр (меню Записи).
Упражнение 1
1) Создайте новую базу данных Продажи (стр.13).
2)
В режиме конструктора создайте
таблицу
«Фирмы»
(стр.13):
3) Для поля [КодФирмы] определите Тип данных – Числовой,
Размер поля – Целое, Подпись
– Код Фирмы.
4) Для поля [Название] определите Размер поля – 20, Подпись –
Название Фирмы, ограничьте
значения поля названиями
четырех
фирм:
«Citilink»;
21
«Dinikin», «Elce», «Lizarin». Для сообщения об ошибке задайте текст: «Название фирмы введено неверно».
5) Для поля [Телефон] введите маску ввода: \(999\)999\-99\-99;;_. Размер поля –
20.
6) Сохраните таблицу под именем [Фирмы]. Перейдите в режим таблицы. Введите данные:
7) Импортируйте из базы данных Поставки (Оbmen\Teacher\Mek\Поставки)
таблицы (структуру и данные) (стр.7): [Товары], [Склады], [Хранение],
[Продажи].
8) Для полей [Наименование], [Марка], [Размер] таблицы [Товары] установите
Размер поля – 50 символов. Для поля [Товары].[КодТовара] установите Размер поля – Целое, Подпись – Код Товара.
9) Для поля [Цена] таблицы [Товары] обеспечьте ввод только положительных
значений. Для сообщения об ошибке введите текст: «Введите положительное число». Определите Тип данных - числовой, Размер поля – Одинарное с
плавающей точкой, Формат поля - $#, Число десятичных знаков - 2.
10)Для поля [Склады].[НомерСклада] установите подпись № склада, для поля
[Склады].[Телефон] введите маску ввода, Размер поля задайте - 20.
11)Для поля [Продажи].[Дата] задайте Подпись – Дата продажи, маску ввода
99\->L<LL\-00;0;_. Обеспечьте ввод дат позже 2000г. Для сообщения об
ошибке введите текст: «Проверьте введенную дату».
12)В таблицу [Продажи] добавьте поле [Скидки]. Определите Тип данных – Числовой, Формат поля – Процентный. Обеспечьте ввод скидок до 100%: установите Размер поля – Одинарное с плавающей точкой; Число десятичных
знаков – 0; Условие на значение – «Between 0 And 1»; Сообщение об ошибке
– «Размер скидки не должен превышать 100%». Заполните поле [Скидки] (не
для всех записей).
13)Добавьте в таблицу [Товары] поле: [Поставки]. Для этого поля определите:
Тип данных – логический; Описание – «галочкой отмечаются товары, поставки на которые прекращены»; Подпись – Поставки прекращены; Значение по умолчанию – ложь. Заполните поле [Поставки].
14)В таблицу [Склады] добавьте поле [КодФирмы], определив числовой тип
данных, Размер поля – «Целое».
22
15)Для полей [Склады].[КодФирмы], [Хранение].[НомерСклада], [Хранение].
[КодТовара], [Продажи].[ID], с помощью Мастера подстановок создайте
столбцы подстановок:
• Для поля [Склады].[КодФирмы] в качестве «столбца подстановки» используйте значения таблицы [Фирмы]. В «столбец подстановки» выберите
поля: [КодФирмы], [Название], скройте ключевой столбец. Заполните поле
[Склады].[КодФирмы]: Citilink (25, 27), Lizarin (16, 18, 23), Dinikin (56, 59),
Elce (81).
• Для поля [Хранение].[НомерСклада] в качестве «столбца подстановки» используйте значения таблицы [Склады]. В «столбец подстановки» выберите
поле [НомерСклада].
• Для поля [Хранение].[КодТовара] в качестве «столбца подстановки» используйте значения таблицы [Товары]. В «столбец подстановки» выберите
поле [КодТовара], [Наименование], скройте ключевой столбец.
• Для поля [Продажи].[ID] в качестве «столбца подстановки» используйте
значения таблицы [Хранение]. В «столбец подстановки» выберите поля:
[ID], [КодТовара], [НомерСклада], откройте ключевой столбец. Объявите
доступным поле [ID].
16)Установите связи между таблицами, обеспечив целостность данных, каскадное обновление и удаление данных в связанных таблицах.
17)Выполните сжатие базы данных (стр. 19).
18)В таблицу [Товары] добавьте поле [Изображение]. Определите тип данных
OLE. Введите в любую запись рисунок, созданный в графическом редакторе.
19)Добавьте в таблицы [Товары], [Продажи], [Хранение] по одной записи, проверив при этом действие введенных Вами ограничений.
20)Отсортируйте данные в таблице [Товары] по цене.
21)В таблице [Товары], используя фильтр по выделенному, отобразите все товары, гарантийный срок которых 36 месяцев.
22)В таблице [Товары], используя фильтрацию, отобразите записи, цена товара
в которых больше 100$.
23)В таблице [Продажи], используя расширенный фильтр, отобразите данные о
продажах со скидкой с 5 по 15 декабря 2003г.
24)В таблице [Склады], используя фильтрацию, отобразите данные о складах
фирмы Lizarin.
25)Просмотрите данные таблицы [Товары] в режиме АВТОФОРМА. Добавьте
новую запись.
26)В режиме АВТОФОРМА осуществите поиск товаров марки Abit.
6. Создание запросов
Хотя в режиме таблицы доступны самые разные операции с данными –
просмотр, сортировка, фильтрация – запросы являются наилучшим способом
23
отбора необходимых данных. Запросы позволяют проводить вычисления, а также отбирать необходимые данные из нескольких таблиц.
6.1 Создание запросов на выборку
1. В окне БАЗА ДАННЫХ выберите вкладку ЗАПРОС и нажмите кнопку
Создать.
2. Выберите режим КОНСТРУКТОР.
Окно конструктора запросов разделено на две части. В верхней части
должны находиться макеты таблиц или запросов, на основе которых создается
запрос. В нижней части бланка выполняется вся работа по созданию запроса.
Рисунок 2. Окно запроса в режиме конструктора
Чтобы поместить таблицы на бланк запроса, воспользуйтесь диалоговым
окном ДОБАВЛЕНИЕ ТАБЛИЦЫ. (Вызвать окно ДОБАВЛЕНИЕ ТАБЛИЦЫ
можно в режиме КОНСТРУКТОРА ЗАПРОСА, с помощью команды Добавить
таблицу (меню Запрос)).
Каждый столбец бланка представляет одно поле, используемое в запросе.
Выбрать поля можно несколькими способами. Например, выделить нужное
поле в верхней части бланка запроса и дважды щелкнуть на нем.
Установка свойств полей
Поля, выводимые в наборе записей запроса, наследуют свойства, заданные для соответствующих полей таблицы. Иногда, например, в случае вычисляемых полей, возникает необходимость задать другие значения свойств: Формат
поля, Число десятичных знаков, Подпись.
Чтобы задать свойства поля, щелкните в любой ячейке этого поля в
бланке запроса, а затем нажмите на кнопку Свойства панели инструментов.
Ввод условий отбора
Ввод условия отбора в запросе аналогичен заданию условия на значение
для поля таблицы (стр 16.). Если необходимо отобрать записи, удовлетворяю24
щие условию, введите его в строке «Условие отбора» в нижней части бланка
запроса.
Сортировка блоков данных в запросе
Блоки данных в запросе могут быть рассортированы алфавитным или
числовым способом в возрастающей (А-Я, 0-9) или убывающей (Я-А, 9-0) последовательности по содержимому отдельных полей. Можно одновременно
производить сортировку по содержимому нескольких полей (до десяти):
1. Щелкните мышью в строке «Сортировка» того столбца (поля), по которому необходимо произвести сортировку.
2. Укажите способ сортировки.
6.2 Запрос с параметром (параметрический запрос)
Как правило, запросы с параметром создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора.
Чтобы определить параметр, введите в строку «Условие отбора» вместо
конкретного значения имя или фразу, заключенную в квадратные скобки ([]).
То, что заключено внутри квадратных скобок, Access рассматривает как имя параметра. Оно выводится в окне диалога при выполнении запроса, поэтому в качестве имени параметра разумно использовать содержательную фразу. В запросе можно задать несколько параметров; при этом имя каждого из них должно
быть уникальным и информативным.
Например, требуется создать параметрический запрос для отображения
процессоров, стоимостью до определенной суммы, их наименования, цены и
телефона склада, где они хранятся (параметром является цена товара).
6.3 Перекрестный запрос
Перекрестный запрос – особый тип итогового запроса. Он позволяет вывести вычисляемые значения в перекрестной таблице, напоминающей электронную.
Для построения перекрестного запроса:
1. В режиме КОНСТРУКТОРА сформируйте запрос на выборку.
25
2. Измените тип запроса на Перекрестный (меню Тип запроса). В бланке
запроса появятся строки «Перекрестная таблица» и «Групповая операция».
3. В строке «Перекрестная таблица» для каждого поля запроса выберите
одну из четырех установок: Заголовки строк, Заголовки столбцов, Значение (выводимое в ячейках перекрестной таблицы) и Не отражать.
4. Для перекрестного запроса определите поле (можно несколько) в качестве заголовков строк. Определите одно (и только одно) поле, которое
будет использоваться в качестве заголовков столбцов.
5. Определите одно (и только одно) поле значений. Это поле должно быть
итоговым (т.е. в строке «Групповая операция» должна быть задана
одна из итоговых функций, например, суммирования (Sum), определения среднего значения (Avg) или количества (Count)).
Упражнение 2
Откройте БД Продажи.
Указание: запросы сохраняйте под именами: Запрос_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится запрос (например, Запрос2_1).
1) Создайте запрос, отображающий дату продажи, наименование товара, номер
склада, с которого был продан товар, количество проданного товара, название фирмы, осуществившей продажу.
2) Создайте запрос, отображающий даты продаж материнских плат с указанием
проданного количества, а также названий и телефонов фирм, их продавших.
3) Создайте запрос, отображающий товары, проданные со скидкой, указав наименование товара, дату продажи товара, название фирмы, осуществившей
продажу и размер скидки.
4) Создайте запрос, отображающий мониторы, проданные со скидкой, указав
дату продажи товара, цену товара, название фирмы, осуществившей продажу и размер скидки.
5) Создайте запрос, отображающий товары, проданные фирмой Lizarin после
10 декабря 2003г., указав наименование товара и номер склада, с которого
был продан товар.
6) Создайте запрос, отображающий товары, проданные фирмами Citilink и
Dinikin c 5 по 15 декабря 2003г., указав наименование товара, его цену и размер скидки.
26
7) Создайте запрос, отображающий товары с гарантийным сроком 36 месяцев,
указав наименование товара, цену, номер и телефон склада, где хранится товар.
8) Создайте запрос, отображающий 17– и 19 – дюймовые мониторы, указав их
наименование, цену, гарантийный срок и телефон склада, где они хранятся.
9) Создайте параметрический запрос, отображающий видеокарты, стоимостью
до определенной суммы, их наименования, цены и телефона склада, где они
хранятся (параметром является цена товара).
10)Создайте параметрический запрос для отображения всех сведений о складах
(номер, адрес, телефон) данной фирмы (параметром является название фирмы).
11)Создайте параметрический запрос, отображающий товары, проданные со
склада, определяемого значением параметра. Указать наименование товара,
дату продажи, количество проданного товара, скидку.
12)Создайте запрос, отображающий товары, проданные за 10 декабря 2003г.
Укажите наименование товара, цену и номер склада. На основе полученного
запроса создайте параметрический запрос для отображения товаров, проданных за конкретное число, определяемое параметром. Сохраните параметрический запрос.
13)Создайте запрос, отображающий товары, проданные за декабрь. Укажите наименование товара, количество проданного товара, скидки и номер склада.
На основе полученного запроса создайте параметрический запрос для отображения товаров, проданных за месяц, номер которого определяется параметром. Сохраните параметрический запрос.
14)Создайте перекрестный запрос, отображающий количество проданного товара фирмами. В заголовках строк укажите наименования товаров, в заголовках столбцов – названия фирм.
15)Создайте перекрестный запрос, отображающий количество товаров, хранящихся на складах. В заголовках строк укажите наименования товаров, в заголовках столбцов – номера складов.
6.4 Вычисляемые поля в запросах
Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц.
Для создания вычисляемых полей можно использовать арифметические
операторы и любые встроенные функции Access.
Вычисляемое поле может также содержать результат конкатенации
(объединения) значений текстовых полей. Для этого заключите текст в кавычки, в качестве оператора конкатенации используется символ «&». Например,
можно создать поле, которое будет содержать результат объединения поля [Фамилия] и поля [Имя].
Поле, содержимое которого является результатом расчета по содержимому других полей, называется вычисляемым полем. Вычисляемое поле существует только в результирующей таблице.
27
Создание вычисляемого поля осуществляется путем простого ввода выражения для вычисления в ячейку «Поле» пустого столбца бланка запроса.
1. После выполнения запроса в результирующей таблице появится новое
поле с названием «Выражение1», используемым в качестве имени вычисленного выражения.
2. В режиме конструктора запроса измените имя «Выражение1» на более
содержательное. В примере «Выражение1» изменено на «ЦенаСоСкидкой».
Для того чтобы ввести сложные вычисления используйте окно ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ, которое вызывается нажатием кнопки ПОСТРОИТЬ панели инструментов, либо соответствующей командой контекстного меню.
Рисунок 3. Построитель выражений
В верхней части окна расположена пустая область ввода, предназначенная для создания выражения. В нижней – находятся три списка, предназначенные для поиска необходимых полей и функций.
28
Построитель поможет правильно построить выражение. Щелкните на
кнопке ОК, и введенное выражение будет перенесено в бланк запроса.
6.5 Итоговые запросы
Для получения итоговых значений по группам данных используются итоговые запросы. Для задания вычислений итоговых значений щелкните на
кнопке Групповые операции на панели инструментов конструктора запросов,
чтобы в бланке запроса появилась строка «Групповая операция». Тогда записи
по каждому полю будут группироваться. Для вычисления итогов замените значение Группировки в строке «Групповая операция» на конкретную итоговую
функцию.
Access предоставляет девять функций, обеспечивающих выполнение
групповых операций:
Функция
Описание
Sum
Суммирование значений определенного поля
Avg
Min
Max
Count
First
Вычисление среднего значения данных определенного поля
Вычисление минимального значения поля
Вычисление максимального значения поля
Вычисление количества записей, отобранных запросом по условию
Определяется первое значение в указанном поле записей, отобранных
запросом
Last
Определяется последнее значение в указанном поле записей, отобранных запросом
StDev
Вычисляется стандартное отклонение значений данного поля для всех
записей, отобранных запросом
Var
Вычисляется вариация значений данного поля для всех записей, отобранных запросом
Например, необходимо вычислить, сколько всего было продано данного
товара с данного склада за все время продаж.
Так как один и тот же товар мог продаваться не один раз, используем
группировку по полям [Наименование] и [НомерСклада], а по полю [Количество] выбираем функцию суммирования.
29
Упражнение 3
Откройте БД Продажи.
Указание: запросы сохраняйте под именами: Запрос_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится запрос (например, Запрос2_1).
1) Создайте запрос для отображения товаров, проданных со скидкой. Укажите
наименование товара, цену товара, размер скидки и цену со скидкой. В свойствах поля [ЦенаСоСкидкой] определите Формат поля – Денежный, Число
десятичных знаков – 2.
2) Создайте запрос для отображения наименования товара, номера склада и количества данного товара, проданного с данного склада. В свойстве поля
[Продажи].[Количество] определите Надпись – Всего продано.
3) Создайте запрос для отображения количества товаров, оставшегося после
продаж. Укажите наименование товара, номер склада, количество товара на
складе, количество проданного товара, количество оставшегося товара.
Поле, где указано количество проданного товара подпишите Всего Продано;
количество оставшегося товара – Осталось на складе.
4) Создайте запрос для отображения средних цен каждой группы товаров
(группой считать товары одного наименования, например, мониторы, процессоры). Укажите наименование товара (сокращенное: 5-7 первых символов от наименования товара), среднюю цену. Первое поле назовите Товар,
второе – Средняя цена. Для поля [Средняя цена] определите Денежный знак
– $, Число десятичных знаков – 2.
5) Один и тот же товар может храниться на нескольких складах. Создайте
запрос для отображения списка таких товаров, указав общее количество
каждого товара и число складов, на которых хранится данный товар. Определите Надписи для полей: [Товар], [Общее количество], [Количество складов] соответственно.
6) Создайте параметрический запрос для отображения товаров одного наименования (например, мониторов, процессоров…). В качестве параметра
30
используйте три первых символа наименования товара. Укажите наименование товара, цену и гарантийный срок.
7) Создайте запрос, вычисляющий налог с продаж. Укажите наименование товара, общую сумму продаж, налог с продаж. Налог с продажи равен 5%,
если сумма продаж составляет <10000$, в противном случае налог с продаж
равен 10%. Для полей [Сумма продаж], [Налог с продаж] установите денежный знак $, Число десятичных знаков – 2.
7. Модификация данных с помощью запросов
Чтобы обезопасить себя от случайностей, перед созданием запросов на
модификацию данных, создайте резервные копии таблиц, данные которых будут модифицироваться.
7.1 Запрос на создание таблицы
БД на физическом уровне хранит только таблицы. Набор записей запросов физически не существует в БД. Ассеss создает его из данных таблиц только
во время выполнения запроса. Иногда возникает необходимость сохранить извлекаемые с помощью запроса на выборку данные в новой таблице:
1. Создайте новый запрос на выборку тех записей, из которых должна состоять создаваемая с помощью запроса таблица.
2. Проверьте правильность отбора записей, перейдя в режим ТАБЛИЦА.
3. Преобразуйте запрос на выборку в запрос на создание новой таблицы.
Для этого, вернувшись в режим КОНСТРУКТОРА, выберите Создание
таблицы...(меню Тип запроса).
4. В появившемся окне введите имя новой таблицы.
5. Выполните запрос (кнопка
на панели инструментов ).
7.2 Запрос на обновление
Используя этот тип запроса, можно изменить в базовой таблице группу
блоков данных, отобранную на основе определенных критериев:
31
1. Создайте новый запрос на выборку и проверьте его корректность,
перейдя в режим ТАБЛИЦА.
2. Преобразуйте запрос на выборку в запрос на обновление. Для этого,
вернувшись в режим КОНСТРУКТОРА, выберите команду Обновление (меню Запрос).
3. В появившейся в бланке запроса строке «Обновление» в соответствующих столбцах задайте новые значения полей таблицы. В качестве таковых могут выступать и вычисляемые значения. В случае необходимости воспользуйтесь Построителем выражений (кнопка ПОСТРОИТЬ панели инструментов или соответствующая кнопка контекстного меню).
4. Выполните запрос.
7.3 Запрос на добавление записей
С помощью этого типа запроса блоки данных одной таблицы (все или
отобранные запросом) можно присоединить в конец другой таблицы:
1. Создайте новый запрос на выборку тех блоков данных, которые будут
добавлены в некоторую таблицу и проверьте его корректность, перейдя
в режим ТАБЛИЦА.
2. Преобразуйте запрос на выборку в запрос на добавление. Для этого,
вернувшись в режим КОНСТРУКТОРА, выберите команду Добавление...(меню Запрос).
3. В появившемся окне введите имя таблицы, к которой нужно присоединить данные и нажмите ОК.
4. Выполните запрос.
7.4 Запрос на удаление записей
С помощью данного типа запроса можно удалить из базовой таблицы
группу блоков данных, отобранных по определенным критериям. При этом следует тщательно проанализировать критерии отбора, поскольку эту операцию
нельзя отменить.
1. Создайте новый запрос на выборку удаляемых блоков данных. Отбор
блоков данных выполняется в соответствии с заданными в строке
«Условие» критериями.
2. Проверьте корректность сформулированных условий, перейдя в режим
ТАБЛИЦА.
3. Преобразуйте запрос на выборку в запрос на удаление записей. Для этого, вернувшись в режим КОНСТРУКТОРА, выберите команду Удалить
(меню Запрос).
4. В появившейся строке «Удалить» установите критерии отбора.
5. Выполните запрос.
Упражнение 4
Откройте БД Продажи.
Создайте копию таблицы [Товары]. Присвойте ей имя [КопияТовары].
Создайте копию таблицы [Хранение]. Присвойте ей имя [КопияХранение].
32
Указание: запросы сохраняйте под именами: Запрос_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится запрос (например, Запрос2_1).
1) Создайте запрос на обновление в таблице [КопияТовары] цен с учетом сезонных скидок на 10%.
2) Создайте запрос на обновление в таблице [КопияХранение] количества товара, оставшегося на складе после продаж.
3) Создайте запрос на создание таблицы [Мониторы], отображающей все поля
таблицы [КопияТовары].
4) Создайте запрос на создание таблицы [ТоварыМаркиAsus], отображающие
все поля таблицы [КопияТовары].
5) Создайте запрос на добавление в таблицу [Мониторы] данных о Видеокартах из таблицы [КопияТовары]. Таблицу [Мониторы] переименуйте. Новой
таблице присвойте имя [Мониторы_и_видеокарты].
6) Создайте запрос на добавление в таблицу [ТоварыМаркиAsus] данных о товарах фирмы AMD из таблицы [КопияТовары]. Новой таблице присвойте
имя [ТоварыМарокAsus_и_AMD].
7) Создайте запрос на создание таблицы [ТоварыLizarin], отображающей поля
[КодТовара], [Наименование], [Цена], [НомерСклада].
8) Создайте запрос на удаление из таблицы [КопияТовары] данных о Мониторах и Видеокартах.
9) Создайте запрос на удаление из таблицы [КопияТовары] данных о товарах
фирм Asus и AMD.
1)
2)
3)
4)
5)
6)
7)
Самостоятельная работа
На диске D создайте новую базу данных. В качестве имени БД используйте
Вашу фамилию. Импортируйте в новую БД из БД Продажи таблицы [Товары], [Хранение], [Склады], [Фирмы], [Продажи].
Проверьте наличие связей в схеме данных.
Создайте запрос для отображения дат продаж процессоров Intel с указанием
проданного количества, а также номеров и телефонов складов, с которых
они были проданы.
Создайте запрос для отображения количества товаров, проданных фирмами
Citilink и Lizarin c 1 по 10 декабря 2003г.
Создайте параметрический запрос для отображения товаров, проданных конкретной фирмой (параметром является название фирмы). Укажите наименование товара, дату продажи, количество проданного товара и номер склада, с
которого был продан товар.
Создайте перекрестный запрос, отображающий количество проданного товара фирмами Lizarin и Citilink. В заголовках строк укажите наименования товаров, в заголовках столбцов – названия фирм.
Создайте запрос, отображающий количество складов каждой фирмы.
33
8) Фирма Lizarin проводит рекламную акцию и снижает цены на свои товары
на 10%. Создайте запрос, отображающий товары фирмы Lizarin с новыми
ценами. Укажите поля: Наименование товара, СтараяЦена, НоваяЦена.
9) Создайте копию таблицы [Товары]. Присвойте ей имя [КопияТовары].
10)Создайте запрос на создание таблицы [ПоставкиПрекращены], отображающей список товаров, поставки которых прекращены. Используйте таблицу
[КопияТовары].
11)Holding-центр проводит рекламную акцию и снижает цены на 17-дюймовые
мониторы на 20%. Создайте запрос на обновление и обновите цены в таблице [КопияТовары] в соответствии с условиями акции.
12)Стало известно, что прекращены поставки видеокарт фирмы Asus. Укажите
это в таблице [КопияТовары] (поставьте «галочки» в поле [Поставки] соответствующих строк). Создайте запрос на добавление и добавьте эти товары в
таблицу [ПоставкиПрекращены].
13)Создайте запрос на удаление из таблицы [КопияТовары] товаров, поставки
на которые прекращены.
8. Создание запросов с использованием языка SQL
На самом деле любой запрос в MS Access реализуется с помощью языка
SQL. Хотя большинство запросов можно построить, пользуясь средствами, которые Access предоставляет в режиме конструктора, и в этом случае они будут
храниться в виде инструкций SQL. Некоторые типы запросов можно построить,
только используя язык SQL.
8.1 Синтаксис инструкции SELECT в MS Access
Ядром языка SQL является инструкция SELECT. Она используется для
отбора строк и столбцов из таблиц базы данных и содержит пять основных
предложений. В общем случае ее синтаксис можно представить в следующем
виде:
SELECT <список–полей>1
FROM <список–таблиц>
[WHERE <спецификация–отбора–строк>]2
[GROUP BY <спецификация–группировки>]
[HAVING <спецификация–отбора–групп>]
[ORDER BY <спецификация–сортировки>]
В MS Access реализованы важные средства расширения языка:
• Инструкция TRANSFORM, позволяющая строить перекрестные запросы;
• Предложение IN, с помощью которого задается связь с удаленной базой данных или указываются имена столбцов перекрестного запроса;
и др.
В угловые скобки заключается обязательный элемент синтаксиса.
В квадратные скобки заключаются один или несколько необязательных элементов,
разделенных символом «вертикальная черта» (|).
1
2
34
Синтаксис
[[[]{имя–таблицы | имя–запроса–на–выборку | псевдоним}[]].][[]имя–
поля[]]1
Имя–таблицы, имя–запроса–на–выборку и псевдоним, уточняющий имя
поля обязательно должны присутствовать в предложении FROM запроса. Если
таблица или запрос имеет псевдоним, необходимо использовать именно его, а
не реальное имя таблицы или запроса.
Первую часть имени (включая точку) можно опустить, если поле имеется только в одной из таблиц предложения FROM.
Имена, содержащие пробелы, обязательно должны заключаться в квадратные скобки.
При определении списка полей использование символа «*» вместо имени поля указывает, что нужно отобразить все столбцы данной таблицы. Если в
качестве списка полей использован символ «*», то отбираются все столбцы
всех таблиц, указанных в предложении FROM.
Пример
Следующее выражение задает поле из таблицы [Товары], имя которого
Наименование: Товары.Наименование
8.2 Предложение FROM
Задает таблицы или запросы, служащие источниками данных для создаваемого запроса.
Синтаксис
FROM {имя–таблицы [[AS] псевдоним ] |
имя–запроса–на–выборку [[AS] псевдоним ] |
<таблица–объединения>} …
[IN <спецификация источника>]
где <таблица–объединения>:
{имя–таблицы [[AS] псевдоним ] |
имя–запроса–на–выборку [[AS] псевдоним ] |
(<таблица–объединения>)}
{INNER | LEFT | RIGHT} JOIN
{имя–таблицы [[AS] псевдоним ] |
имя–запроса–на–выборку [[AS] псевдоним ] |
(<таблица–объединения>)}
ON <условие объединения>
Для каждой таблицы и запроса можно определить альтернативное имя.
Оно используется как псевдоним вместо полного имени таблицы при задании
имен столбцов в списке полей, условии объединения и предложении WHERE.
В фигурные скобки заключаются один или несколько элементов, разделенных символом «вертикальная черта». Следует выбрать один из перечисленных элементов.
1
35
Пример
Следующий запрос отображает все поля таблицы Товары:
SELECT Товары.*
FROM Товары;1
Следующий запрос отображает товары, цена которых больше $100 и гарантийный срок которых 36 месяцев:
SELECT Товары.Наименование, Товары.Цена
FROM Товары
WHERE Товары.Цена > 100 AND Товары.[Гарантийный срок] = 36;
Большие возможности SQL, во многом, основаны на его способности
объединять информацию из нескольких таблиц или запросов.
Для задания типа объединения таблиц в логический набор записей, из которого будет выбираться необходимая информация, в предложении FROM используется операция JOIN.
Операция INNER JOIN используется для получения всех строк из обеих
логических таблиц, удовлетворяющих условию объединения.
Операция LEFT JOIN возвращает все строки из первой логической таблицы, объединенные с теми строками из второй, для которых выполняется условие объединения.
Аналогично, операция RIGHT JOIN возвращает все строки из второй логической таблицы, объединенные с теми строками из первой таблицы, для которых выполняется условие объединения.
<условие объединения> – выражение, в котором поля первой таблицы
сравниваются с полями второй таблицы. В бланке запроса QBE в условии
объединения используется только оператор равно (=). Запрос на основе объединения таблиц по неравенству (<, >, <>, <= или >=) можно создать только в режиме SQL.
Пример 1
Следующий запрос отображает сведения о складах фирмы Citilink.
SELECT Склады.НомерСклада, Склады.Адрес, Склады.Телефон
FROM Фирмы INNER JOIN Склады
ON Фирмы.КодФирмы = Склады.КодФирмы
WHERE Фирмы.Название = «Citilink»;
Пример 2
Запрос отображает список товаров, которые еще не продавались, с указанием наименования товаров и номеров складов, на которых они хранятся.
SELECT Товары.Наименование, Хранение.НомерСклада
FROM (Товары INNER JOIN Хранение ON Товары.КодТовара =
Хранение.КодТовара) LEFT JOIN Продажи ON Хранение.ID = Продажи.ID
WHERE (( Продажи.Количество) Is Null);
1
Запрос
должен заканчиваться символом «точка с запятой» (;)
36
Следующая операция возвратит все строки из таблиц Товары и Хранение,
для которых совпадают значения в поле КодТовара.
Товары INNER JOIN Хранение ON Товары.КодТовара = Хранение.КодТовара
Операция LEFT JOIN возвратит все строки из таблицы, полученной в результате предыдущей операции INNER JOIN, объединенные с теми строками из
[Продажи], для которых выполняется условие объединения. Тогда в строке товара, который не продавался, в поле «количество проданного товара» будет значение Null, что будет являться условием отбора для искомого списка.
8.3 Предложение GROUP BY
В инструкции SELECT задает столбцы, используемые для формирования
групп из выбранных строк.
Синтаксис
GROUP BY имя–столбца, …
Оператор GROUP BY разделяет рассматриваемую таблицу на такие группы, что внутри любой из этих групп все строки содержат одинаковые значения
в указанном столбце.
Пример
Следующий запрос отображает общее количество проданного товара
каждого наименования:
SELECT Товары.Наименование, Sum(Продажи.Количество)
AS [Sum–Количество]
FROM (Товары INNER JOIN Хранение
ON Товары.КодТовара = Хранение.КодТовара)
INNER JOIN Продажи ON Хранение.ID=Продажи.ID
GROUP BY Товары.Наименование
8.4 Предложение HAVING
HAVING – специальная форма фразы WHERE. Она относится не к
отдельным строкам, а к группам: предикат во фразе HAVING всегда ссылается
(посредством специальных библиотечных функций, таких как, например, SET)
на свойства групп, а не строк, и на основе этого предиката группы целиком
либо выбираются, либо отбрасываются.
Синтаксис
HAVING <условие отбора>
В случае отсутствия предложения GROUP BY условие отбора применяется ко всей логической таблице, определенной инструкцией SELECT.
Пример
Следующий запрос отображает общее количество проданного товара по
дням с 10 по 20 декабря 2003г.
37
SELECT Продажи.Дата, Sum(Продажи.Количество)AS [Sum–Количество]
FROM Продажи
GROUP BY Продажи.Дата
HAVING ((Продажи.Дата) Between #10.12.03# AND #20.12.03#);
8.5 Предложение ORDER BY
Задает порядок расположения строк, возвращаемых инструкцией SELECT
Синтаксис
ORDER BY {имя–столбца | номер–столбца [ASC | DESC]}, …
Оператор ORDER BY определяет сортировку результата выборки в порядке возрастания ASC или убывания DESC значений атрибута. В предложении
ORDER BY можно указать несколько столбцов. Список сортируется сначала по
значениям столбца, имя которого указано первым.
Пример
Следующий запрос отображает список товаров упорядоченных по цене
SELECT Товары.Наименование, Товары.Цена
FROM Товары
ORDER BY Товары.Цена DESC;
8.6 Инструкция SELECT
Выполняет операции выбора и объединения для создания логической таблицы (набора записей) на базе других таблиц или запросов.
Синтаксис
SELECT [ALL | DISTINCT | DISTINCTROW | TOP число
[PERCENT]] <список–полей>
Предикаты ALL, DISTINCT, DISTINCTROW, TOP n или TOP n PERCENT уточняют окончательный набор записей запроса.
По умолчанию действует предикат ALL, при котором в набор записей
включаются все строки, удовлетворяющие условиям отбора, в том числе дубликаты.
Предикат DISTINCT требует, чтобы запрос возвратил только строки, отличающиеся от всех остальных.
Если инструкция SELECT содержит предикат DISTINCTROW, то в набор записей включаются только те строки, в которых конкатенация первичных
ключей из всех таблиц, участвующих в формировании возвращаемых столбцов,
является уникальной. В зависимости от того, какие столбцы представлены в наборе записей, иногда можно увидеть повторяющиеся строки, но даже в этом
случае каждая строка запроса образована из уникальной (DISTINCT) комбинации строк (ROWS) базовых таблиц.
Чтобы результирующий набор содержал только первые n или первые n
процентов записей, используйте предикат TOP n или TOP n PERCENT. Параметр n должен быть целым числом, не превышающим 100, если используется
ключевое слово PERCENT.
Пример
38
Следующий запрос отображает список 10 самых дорогих товаров
SELECT TOP 10 Товары.Наименование, Товары.Цена
FROM Товары
ORDER BY Товары.Цена DESC;
8.7 Подчиненный запрос (вложенная выборка)
SQL позволяет использовать в условии отбора результаты другой выборки. Уровней вложенности может быть несколько.
Пример
Необходимо получить список процессоров, цена которых ниже средней
цены процессоров.
SELECT Товары.Наименование, Товары.Цена
FROM Товары
WHERE ((Товары.Наименование) Like "проц*") AND ((Товары.Цена)<(SELECT Avg(Товары.Цена) AS СредняяЦена
FROM Товары
WHERE ((Товары.Наименование) Like "проц*")));
В приведенном выше примере внутренний подчиненный запрос вычисляет среднюю цену процессоров, внешний запрос отбирает процессоры, цена которых ниже средней цены процессоров.
Упражнение 5
Откройте БД Продажи.
Указание: запросы сохраняйте под именами: Запрос_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится запрос (например, Запрос2_1).
1) Создайте запрос для отображения десяти самых дорогих товаров. Укажите
наименование товара, цену и гарантийный срок.
2) Создайте запрос для отображения трех самых дорогих мониторов.
3) Создайте запрос для отображения мониторов, цена которых выше средней
цены мониторов.
4) Создайте запрос для отображения полного списка товаров, указав наименование товара, номер склада, количество проданного товара. (Список должен
содержать все товары таблицы Товары, независимо от того, продавался товар или нет. Тогда в строке товара, который не продавался, в столбце «количество проданного товара» будет значение Null).
SELECT Товары.Наименование, Хранение.НомерСклада, Sum(Продажи.Количество) AS [Sum-Количество]
FROM (Товары INNER JOIN Хранение ON Товары.КодТовара = Хранение.КодТовара) LEFT JOIN Продажи ON Хранение.ID = Продажи.ID
GROUP BY Товары.Наименование, Хранение.НомерСклада;
39
5) Создайте запрос для отображения оставшегося на складе количества товара,
поставки на которые прекращены.
SELECT Товары.Наименование, Хранение.Поставки, Хранение.НомерСклада,
Хранение.количество, IIf([Запрос5_4]![Sum-Количество] Is Null, [Хранение]![количество], [Хранение]![количество]-[Запрос5_4]![Sum-Количество]) AS [Осталось на
складе]
FROM Запрос5_4 INNER JOIN (Товары INNER JOIN Хранение ON Товары.КодТовара = Хранение.КодТовара) ON (Запрос5_4.НомерСклада = Хранение.НомерСклада) AND (Запрос5_4.Наименование = Товары.Наименование)
WHERE (((Хранение.Поставки)=Yes));
6) Создайте параметрический запрос для отображения номеров и телефонов
складов, на которых хранится самый дешевый товар указанного наименования. В качестве параметра используйте три первых символа наименования
товара.
7) Создайте запрос для отображения товаров, которые еще не продавались.
Укажите наименование товара и номер склада, на котором он хранится.
9. Создание форм и отчетов
9.1 Создание формы
Формы Access позволяют создавать пользовательский интерфейс для таблиц базы данных. Хотя для выполнения тех же самых функций можно использовать режим таблицы, формы предоставляют преимущества для представления
данных в упорядоченном и привлекательном виде.
Форма представляет собой некий электронный бланк, в котором имеются
поля для ввода данных. В форме каждое поле можно разместить в точно задан40
ном месте, выбрать для него цвет и заливку. В форму можно помещать вычисляемые поля. OLE-обьекты можно увидеть только в форме или отчете. В
форме намного проще работать с большими текстами поля типа МЕМО в текстовом окне с полосами прокрутки.
Форма строится на основе Access-таблицы или запроса. При каждом
открытии сохраненной формы обновляются данные запроса, на основе которого создается форма. Благодаря этому содержимое Формы всегда соответствует
информации в таблицах и запросах.
Формы могут быть выведены на экран в трех видах: режим конструктора,
режим формы и режим таблицы. Для перехода из одного режима в другой используются команды меню ВИД или кнопка ВИД панели инструментов.
Microsoft Access предоставляет быстрый способ создания формы на основе таблицы с использованием Мастера Форм. Он задает пользователю вопросы
о структуре и оформлении формы. Результатом диалога пользователя и Мастера Форм является «готовая к употреблению» форма.
Для создания формы самостоятельно без помощи Мастера Форм:
1. В окне БАЗА ДАННЫХ щелкните на вкладке ФОРМА.
2. В открывшемся окне щелкните на кнопке СОЗДАТЬ. Появится окно
НОВАЯ ФОРМА.
3. Если форма создается на основе таблицы, то выберите имя таблицы, являющейся источником данных формы.
4. Щелкните на кнопке КОНСТРУКТОР. При открытии окно конструктора ФОРМА содержит одну область – область данных. Помимо этого,
форма может содержать область заголовка, примечания и колонтитулов
(верхнего и нижнего). Для добавления этих областей используются команды Заголовок/примечание формы и Колонтитулы (меню Вид).
(Данные, размещаемые в заголовке, в области данных и в области примечания, отображаются в форме. Области колонтитулов отображаются
только при печати.)
5. Для индикации инструментального окна выберите команду Панель
элементов (меню Вид).
Выберите команду Список полей (меню Вид) для выбора полей, которые
будут включены в форму. Разместите поля в области данных. Поля, добавляемые таким способом, состоят из надписи и поля для ввода данных. Если выделить надпись или само поле, то ко второму элементу автоматически добавляется манипулятор перемещения и можно перемещать их в паре или по отдельности. В случае, когда нет необходимости в выводе надписи поля рядом с самим
полем, удалить ее можно следующим образом: выделить надпись и нажать клавишу DELETE.
9.2 Формы для связанных таблиц
В таких формах можно одновременно отобразить информацию из двух
(или более) связанных таблиц. Кроме того, такая форма позволяет выполнить
редактирование данных, содержащихся в обеих таблицах.
41
В результате создания этой формы на экране выводятся только те записи
подчиненной таблицы, которые связаны с текущей записью исходной (главной)
таблицы:
1. Выберите пиктограмму НОВЫЙ ОБЪЕКТ: АВТОФОРМА.
2. В появившемся окне НОВАЯ ФОРМА выберите режим МАСТЕР
ФОРМ.
3. В появившемся диалоговом окне укажите имена полей для главной и
подчиненной форм и порядок их размещения в новой форме, выбрав
имя таблицы из раскрывающегося списка Таблицы/Запросы. Нажмите
кнопку ДАЛЕЕ.
4. В следующем окне выберите переключатель Подчиненные формы.
5. Далее выберите вид подчиненной формы.
6. Далее выберите стиль формы.
7. Озаглавьте главную и подчиненную формы и нажмите кнопку ГОТОВО.
Для просмотра записей главной формы используются кнопки просмотра в
нижней части окна. Выше нее выводится строка для просмотра записей подчиненной формы, которые представлены в виде таблицы.
9.3 Создание элементов формы или отчета
Окно формы (отчета) может содержать следующие элементы: подпись,
поле, поле со списком, список, выключатели, переключатели, флажки и кнопки.
Кроме того, форму (отчет) можно дополнить иллюстрацией (рисунком или диаграммой), текстом и линиями различного типа. Для оформления форм (отчетов)
также может быть использована возможность изменения начертания, стиля и
выравнивания данных, которые отображаются в полях, а также цвета символов,
фона и границы (панель инструментов ФОРМАТ (Форма/Отчет)).
Создание элементов окна осуществляется в режиме Конструктора.
Для индикации инструментального окна выберите команду Панель элементов (меню Вид). Каждая пиктограмма этой панели предназначена для создания элемента определенного типа. Назначение каждой пиктограммы однозначно определяется их наименованиями.
Существует три основных типа элементов управления: присоединенные,
свободные, вычисляемые.
Присоединенные элементы управления - элементы, связанные с полем
таблицы. При вводе значения в присоединенный элемент управления поле таблицы в текущей записи автоматически обновляется. Большинство элементов
управления, в том числе обьекты OLE, можно присоединить к полю. Чаще
всего присоединенные элементы управления содержат данные текстового типа,
а также даты, числа, логические данные (Да/Нет), рисунки и поля МЕМО.
Свободные элементы управления сохраняют введенную величину, не
обновляя при этом поля таблицы. Их можно использовать для отображения:
текста; значений, которые должны быть переданы макросам; линий и прямоугольников. Кроме того, их можно использовать для хранения обьектов OLE
(например рисунков), которые расположены не в таблице, а в самой форме.
42
Свободные элементы управления называют также переменными или
переменными памяти.
Вычисляемые элементы управления создают на основе выражений,
например, функций или формул. Поскольку они не присоединены к полям таблицы, они не обновляют содержание полей таблицы. Этот элемент управления
позволяет производить необходимые вычисления, используя данные полей таблицы, с последующим отображением в форме.
Выбор объектов – позволяет изменить указатель курсора на инструмент
выбора объекта.
Мастера элементов – позволяет включать и отключать мастера по созданию элементов управления.
Надпись – предназначена для вывода на экран неизменяющегося текста,
например, заголовков, подписей или пояснений. Надпись относится к свободным элементам управления, в которые нельзя вводить данные.
Поле – позволяет создать область для отображения, ввода или изменения
данных. В поле можно использовать данные любого типа: текст, числа,
дата/время, логические величины и МЕМО. Поля могут быть как присоединенными, так и свободными. В них можно использовать поля из таблиц или запросов, а также вычисляемые выражения, поэтому такие элементы управления называют связанными полями. При создании связанного поля вместе с ним одновременно образуется еще один элемент управления - присоединенная надпись.
Группа параметров – позволяет создать область настраиваемого размера
для размещения набора флажков, переключателей или выключателей, представляющих набор альтернативных значений.
Выключатель – позволяет создать кнопку, связанную с логическим полем. Элемент может находиться в двух состояниях: Истина – кнопка нажата,
Ложь – кнопка отжата.
Переключатель – предназначен для создания кнопки (называемой радиокнопкой). Ее функции аналогичны функциям выключателя. Элемент находится в двух состояниях: Истина – кружок с точкой, Ложь – пустой кружок. С
кнопкой можно связать команды, например, выполняющие фильтрацию.
Флажок – предназначен для создания флажка связанного с логическим
полем. Действуют аналогично переключателям, но в отличие от них, допускают
множественный выбор. Элемент может находится в двух состояниях: Истина –
квадрат с галочкой, Ложь – пустой квадрат.
Поле со списком – позволяет создать составной элемент управления,
объединяющий поле и раскрывающийся список значений. Для ввода значения,
можно ввести значение в поле или выбрать значение в списке.
Список – позволяет создать список, допускающий прокрутку, и предназначенный для выбора значения. Позволяет отображать список значений в форме или отчете. В списках можно также отображать заголовки столбцов.
Кнопка – позволяет создать кнопку, используемую для выполнения набора макрокоманд Access или процедур VBA.
43
Рисунок – позволяет создать рамку, в которой в форме или отчете выводится неизменяемый рисунок. Поскольку рисунок не является объектом OLE,
то после помещения рисунка в форму или отчет не допускается его изменение
из Microsoft Access.
Свободная рамка объекта – позволяет создать рамку для отображения в
форме или отчете объектов OLE, как правило, набор иллюстраций. Рамка не
связана ни с каким полем таблиц базы данных.
Присоединенная рамка объекта – для отображения в форме или отчете
объектов OLE, таких как набор иллюстраций. С присоединенной рамкой связано одно из полей таблиц. При переходе от записи к записи в форме или отчете
выводятся разные объекты.
Конец страницы – позволяет создать элемент управления, указывающий
принтеру начало новой страницы в печатной форме или новой страницы в отчете. Этот элемент управления не появляется в форме или запросе в режиме формы.
Вкладка – позволяет вставить элемент управления для создания вложенных форм. Страницы этого элемента могут содержать другие элементы управления.
Подчиненная форма/отчет – предназначена для добавления в основную
форму или основной отчет подчиненной формы или подчиненного отчета соответственно. Добавляемые подчиненная форма или подчиненный отчет должны
существовать.
Линия – позволяет создать прямую линию, которую можно перемещать и
размеры которой можно изменять. Цвет и толщину линии можно изменить с
помощью кнопок панели инструментов Панель форматирования или окна
свойств. Используется для разделения элементов формы или отчета.
Прямоугольник – позволяет создать прямоугольник, который можно
перемещать и размеры которого можно изменять. Используется для выделения
элементов формы.
Дополнительные элементы – выбор этой кнопки открывает список дополнительных элементов управления ActiveX, которые можно использовать в
формах и отчетах.
Для создания элемента управления: текста, поля, линии, прямоугольника
(рамки), кнопки и др.:
1. Щелкните на соответствующей пиктограмме.
2. Укажите курсором мыши (крест с уменьшенным изображением создаваемого элемента) место для создаваемого элемента.
После того, как будет отпущена кнопка мыши для создания некоторых
элементов (таких как, например, поле со списком или кнопка) Access выводит
на экран Мастер. Так, после создания кнопки появляется Мастер, предлагающий выбрать тип действия, которое будет привязано к этой кнопке (переходы
между записями, работа с формой или другие типы, например, работа с запросами в пункте "Разное").
44
Внешний вид, структура и режимы работы отдельных управляющих элементов определяются значениями характеристик этих объектов (команда Свойства, меню Вид).
9.4 Добавление вычисляемых выражений в формы и отчеты
Для выполнения добавления вычисляемых выражений в формы и очеты:
1. Откройте форму (отчет) в режиме Конструктора.
2. Выберите команду Панель элементов (меню Вид).
3. Выберите пиктограмму ПОЛЕ панели элементов.
4. Выберите мышью пустое место в любой области формы или отчета
(например, область примечаний).
5. Для появившегося нового поля укажите необходимые свойства:
откройте окно свойств поля (команда Свойства, меню Вид);
для свойства «Данные» введите, начиная со знака "=", нужное выражение, заключив имена полей БД в квадратные скобки. В качестве
выражения может быть использована как встроенная функция
(например, "=DATE()" - системная дата), так и любое действие над
значениями полей с использованием арифметических или других
операций;
для свойства «Формат поля» выберите из списка тип вычисляемых
данных.
В случае необходимости вставьте рядом с полем элемент Надпись
и заполните его нужным текстом.
6. Перейдите в режим Формы (Отчета).
9.5 Применение условного форматирования
Аccess 2000 позволяет задать условные форматы для полей форм и отчетов. Можно определить логическое выражение, которое Access будет использовать для проверки значения данного поля. Если для текущей записи выражение
истинно, Ассеss изменит свойства данного элемента в соответствии с установками, указанными для этого выражения.
Чтобы задать условия форматирования, откройте форму (отчет) в режиме
конструктора, выделите поле, к которому Вы хотите применить условное форматирование и выберите команду Формат/Условное форматирование. Access
откроет окно диалога УСЛОВНОЕ ФОРМАТИРОВАНИЕ, с помощью соответствующих кнопок измените используемый по умолчанию формат.
Упражнение 6
Откройте БД Продажи.
Заполните поле [Товары].[Изображение] для 3 – 4 наименований товаров.
Указание: формы сохраняйте под именами: Форма_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится форма (например, Форма6_1).
45
1) С помощью Мастера форм создайте форму на основе таблицы [Товары], выводящую в один столбец значения полей [Наименование], [Марка], [Цена],
[Гарантийный срок].
2) В созданную форму добавьте кнопки, позволяющие осуществлять переход
между записями.
3) Создайте подчиненную форму, отображающую данные о товарах, хранящихся на складах, используя таблицу [Склады] в качестве главной, а таблицу [Товары] в качестве подчиненной. Поля выбираются по усмотрению разработчика.
4) Создайте подчиненную форму, отображающую данные о складах и хранящихся на них товарах, используя таблицу [Товары] в качестве главной, а таблицу [Склады] в качестве подчиненной. Поля выбираются по усмотрению
разработчика.
5) Создайте подчиненную форму, отображающую данные о складах фирм, используя таблицу [Фирмы] в качестве главной, а таблицу [Склады] в качестве
подчиненной. Поля выбираются по усмотрению разработчика.
6) Создайте форму для таблицы [Товары], отображающую данные о ценах на
мониторы, их марку, размер диагонали и изображение, включив в область
примечаний минимальную цену1.
7) Создайте форму с одним полем [Изображение].
8) Добавьте в форму_6_1 кнопку, при нажатии на которую будет открываться
форма_6_7.
9) Создайте подчиненную форму по таблицам [Продажи], [Товары], [Хранение], отображающую даты продаж товара, количество проданного товара,
его цены, размер скидки, а также укажите номер склада, с которого осуществлялась продажа и количество данного товара на складе.
1
Для выполнения этого задания предварительно нужно создать запрос по интересующим критериям.
46
1. Создайте форму по запросу3_6, включив в область примечаний максимальную цену. Добавьте на форму кнопку, по нажатию которой будет
осуществляться поиск товара с максимальной ценой.
9.6 Создание отчета
Располагая базой данных можно распечатать любую таблицу, запрос или
форму. Однако результаты печати не будут выглядеть профессионально, так
как эти инструменты не предназначены для печати. С помощью отчета можно
получить результаты в высококачественном варианте. В Access отчет представляет собой форму специального типа, предназначенную для вывода на печать.
Но в отличие от форм отчеты не предназначены для вывода в окне и предназначены только для печати, т.е. создают не экранные, а печатные документы.
При создании отчета
Access всегда оперирует только с одной
единственной таблицей или запросом. Если необходимо объединить информацию из нескольких таблиц и (или) запросов в одном отчете, то прежде следует собрать желаемые данные в новом запросе.
Для создания отчета с помощью Мастера Отчетов:
1. В окне БАЗА ДАННЫХ щелкните на вкладке ОТЧЕТ.
2. В открывшемся окне щелкните на кнопке СОЗДАТЬ. Появится окно
НОВЫЙ ОТЧЕТ.
3. Укажите имя таблицы или запроса, на основе которых создаете отчет и
выберите режим МАСТЕР ОТЧЕТА.
47
4. Выберите поля, данные которых будут помещены в отчет.
5. Далее определите, требуется ли сгруппировать данные по какому-либо
из полей и, если требуется, то выберите вариант группировки. Интервал
группировки может быть изменен после нажатия кнопки ГРУППИРОВКА.
6. Далее задайте порядок сортировки записей отчета. В случае необходимости включения в отчет итоговых полей, нажмите кнопку ИТОГИ и
установите требуемые флажки, определяющие тип итоговых вычислений для предложенных полей. Нажмите кнопку ОК.
7. На следующих двух шагах создания отчета с помощью мастера необходимо определить вид макета отчета и стиль его оформления.
Для создания отчета самостоятельно без помощи Мастера Отчетов:
1. В окне БАЗА ДАННЫХ щелкните на вкладке ОТЧЕТ.
2. В открывшемся окне щелкните на кнопке СОЗДАТЬ. Появится окно
НОВЫЙ ОТЧЕТ.
3. Укажите имя таблицы, на которой должен базироваться отчет, и выберите режим КОНСТРУКТОР.
MS Access выведет окно отчета в режиме Конструктора. Окно Конструктора разделено на несколько областей в соответствии со стандартной структурой отчета. В эти области при необходимости можно ввести управляющие и
другие элементы, уровни группировки.
Заголовок отчета – печатается только в начале отчета, используется на
титульной странице.
Верхний колонтитул – печатается вверху каждой страницы.
Заголовок группы – печатается перед обработкой первой записи группы.
Область данных – печатается каждая запись таблицы или динамического
набора данных запроса.
Примечание группы – печатается после обработки последней записи
группы.
Нижний колонтитул – печатается внизу каждой страницы.
Примечание отчета – печатается в конце отчета после обработки всех
записей.
Проектирование отчета состоит в создании структуры его разделов и в
размещении элементов управления внутри этих разделов, а также в задании
связей между этими элементами и полями таблиц или запросов базы данных.
Отчеты предназначены для вывода информации на принтер, поэтому для
расчета расположения данных на печатной странице программа Access должна
"знать" все необходимое об особенностях принтера. Эти данные Access получает от операционной системы. Соответственно, принтер в системе должен быть
установлен.
При отсутствии принтера отчеты также можно создавать. Достаточно выполнить программную установку с помощью команды операционной системы
Пуск, Настройка, Принтеры, Установка принтера, после чего зарегистриро48
вать драйвер принтера, либо выбрав один из драйверов, прилагающихся к
самой операционной системе.
Упражнение 7
Откройте БД Продажи.
Указание: отчеты сохраняйте под именами: Отчет_номерУпражнения (подчеркивание) НомерПунктаУпражнения, по которому строится отчет (например, Отчет6_1).
1) С помощью Мастера на основе запроса 2_1 создайте отчет, отобразив все
поля запроса. Сгруппируйте записи по полю «Дата» по дням. Укажите общее количество продаж по каждому дню. В области примечаний укажите общее количество всех продаж. Фрагмент отчета:
2) На основе запроса 2_1 создайте отчет, отобразив все поля запроса. Сгруппируйте записи по полю «Номер склада». Укажите число продаж по каждому складу. В области примечаний укажите общее количество всех продаж. Фрагмент отчета:
3) На основе запроса 2_10 создайте отчет о складах фирмы, определяемой
параметром. Определите заголовок отчета – «Склады фирмы». В области
примечаний укажите количество складов фирмы.
4) На основе запроса 3_1 создайте отчет о продажах товаров со скидкой.
• Задайте размер правого поля бланка отчета 10 мм, остальных – 20 мм;
49
• Определите заголовок отчета – «Продажи со скидкой». В область заголовка добавьте рисунок;
• В область данных добавьте поле «Размер скидки»;
• Отсортируйте данные по полю «Цена»;
• В области примечаний укажите максимальный размер скидки;
• Отформатируйте данные по образцу:
5) На основе запроса 2_1 создайте отчет о всех продажах:
• Используя условное форматирование, выделите цветом те записи, в которых проданное количество больше 200;
• Отсортируйте данные по полю «Дата продажи»;
• Укажите общее количество проданного товара по каждой фирме;
• В области примечаний укажите максимальное количество продаж;
• Отформатируйте данные по образцу:
10.Использование VBA для автоматизации работы в MS Access
Модуль – это набор объявлений и процедур на языке VBA. В MS Access
существует два основных типа модулей: модули класса и стандартные модули.
Модули форм и модули отчетов являются модулями класса, связанными с
определенной формой или отчетом. Кроме того, в Microsoft Access существуют
модули класса, которые не зависят от форм или отчетов. Их можно использовать для создания описаний специальных объектов.
50
В стандартных модулях содержатся общие процедуры, не связанные ни с
каким объектом, а также часто используемые процедуры, которые могут быть
запущены из любого окна базы данных.
Для доступа к модулю выполните следующие действия:
• Чтобы создать стандартный модуль, выберите вкладку МОДУЛИ в окне
базы данных и нажмите кнопку СОЗДАТЬ. Чтобы открыть существующий стандартный модуль, выберите вкладку МОДУЛИ, далее модуль, который следует открыть, и нажмите кнопку КОНСТРУКТОР.
• Чтобы открыть модуль формы или модуль отчета, для выбранной формы
или отчета нажмите кнопку
на панели инструментов или выполните
команду Вид/Программа.
Окно свойств удобно открывать с помощью контекстного меню или кнопки панели инструментов
.
Процедура обработки события – процедура, автоматически выполняемая в
ответ на событие, возникающее в результате действий пользователя, выполнения программы или генерируемое системой.
Чтобы создать процедуру обработки события в режиме конструктора,
откройте окно свойств формы, отчета, раздела или нужного элемента управления. Выберите вкладку СОБЫТИЯ, нажмите на кнопку построителя для нужного события и выберите в списке элемент ПРОГРАММЫ.
При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета.
Для ссылки на свойство формы или отчета в тексте программы используется следующий синтаксис:
Forms![ИмяФормы].Свойство
Синтаксис ссылки на элемент управления формы или отчета аналогичен:
Forms![ИмяФормы].[ЭлементУправления]
Forms![ИмяФормы].[ЭлементУправления].Свойство
Внутри модуля формы или отчета при ссылке на элемент управления имя
формы можно не указывать, если элемент находится в этой же форме или отчете. Для ссылки на активную форму или отчет используется также ключевое
слово Me (латинские буквы!). Например, Me.ПолеФирмы.Text.
Упражнение 8
1) Создайте функцию Tax_Sale (X), которая для заданного значения аргумента
вычисляет налог с продаж так, как указано в запросе 3_7. Проверьте работу
функции, создав новую версию запроса 3_7.
Далее приведен текст функции на языке VBA, который нужно поместить
в стандартный модуль базы данных.
Public Function Tax_Sale(X)
If X < 10000 Then
Tax_Sale = 0.05 * X
51
Else
Tax_Sale = 0.1 * X
End If
End Function
При создании собственных функций помните, что имена функций не
должны содержать русских букв.
2) Создайте форму для параметрического запроса Запрос2_10, в которой значение параметра нужно не вводить, а выбирать из списка.
Создайте вспомогательную форму для выбора названия фирмы из списка.
На форму поместите элемент поле со списком и две кнопки.
Установите свойства формы:
Подпись
Выбор фирмы
Тип границы
Окна диалога
Полосы прокрутки
Отсутствуют
Область выделения
Нет
Поле номера записи
Нет
Разделительные линии
Нет
Всплывающее окно
Да
Модальное окно
Да
Измените свойства кнопок:
Первая кнопка
Имя
ОК
Подпись
ОК
По умолчанию
Да
Имя
Подпись
Отмена
Форма для выбора названия
фирмы
Вторая кнопка
Отмена
Отмена
Да
У элемента поле со списком установите свойства:
Имя
ПолеФирмы
Источник строк SELECT Фирмы.Название FROM Фирмы;
Для указания значения свойства «Источник строк» воспользуйтесь построителем выражений в этом поле.
Созданная форма должна иметь вид, приведенный на рисунке
Создайте с помощью мастера форму для запроса Запрос2_10. Скопируйте
эту форму под именем Запрос2_10_Выбор. Свойство «Источник записей» сделайте пустым.
Добавьте в модуль формы Запрос2_10_Выбор обработку события «Загрузка (Load)». Оно возникает при открытии формы и выводе на экран ее записей. В этот момент нужно определить, для какой фирмы показать информацию.
52
Для этого будет использована форма Выбор_фирмы, которую требуется вывести на экран. Текст модуля приведен ниже.
'Form_Запрос2_10_Выбор: модуль класса
Option Compare Database
Option Explicit
Private Sub Form_Load()
DoCmd.OpenForm "Выбор_фирмы", , , , , acDialog
End Sub
Методы объекта DoCmd (Команда), позволяют запускать макрокоманды
Microsoft Access из программ VBA. В нашем примере он используется для
открытия (OpenForm) и закрытия (Close) формы.
В модуле формы Выбор_фирмы требуется написать процедуры обработки события Нажатие кнопки (Click) для кнопок ОК и Отмена. Текст модуля
приведен ниже.
Значение свойства «RecordSource» (Источник данных) определяет данные, выводимые на форме. В данном случае используется инструкция SQL. Её
можно скопировать из запроса Запрос2_10 и изменить последнюю строку. Синтаксис VBA требует, чтобы текстовая информация была заключена в кавычки
("). Так как получается очень длинная строка, она разделена на «кусочки», для
«склеивания» которых используется операция конкатенации (символ &). Полученное выражение располагается в программе на нескольких строках, поэтому
в конце каждой такой строки стоит символ продолжения ( _ ). Это тоже требование синтаксиса VBA. Переменная ПолеФирмы.Text во время выполнения
программы будет содержать название выбранной фирмы. Поэтому в форму будут загружены данные только для нужной фирмы.
'Form_Выбор_фирмы: модуль класса
Option Compare Database
Option Explicit
Private Sub ОК_Click()
ПолеФирмы.SetFocus
Forms![Запрос2_10_Выбор].RecordSource = _
"SELECT Склады.НомерСклада, Склады.Адрес, " & _
"Склады.Телефон " & _
"FROM Фирмы INNER JOIN Склады " & _
"ON Фирмы.КодФирмы = Склады.КодФирмы " & _
"WHERE Фирмы.Название = ' " & ПолеФирмы.Text & " ' "
DoCmd.Close acForm, "Выбор_фирмы", acSaveNo
End Sub
Private Sub Отмена_Click()
53
DoCmd.Close acForm, "Выбор_фирмы", acSaveNo
DoCmd.Close acForm, "Запрос2_10_Выбор", acSaveNo
End Sub
Оглавление:
1. Основные понятия теории баз данных..............................................3
2. Система управления базами данных MS Access..............................5
2.1 Архитектура MS Access................................................................5
2.2 Импорт данных..............................................................................6
3. Проектирование базы данных............................................................7
4. Пример проектирования БД.............................................................11
5. Создание новой (пустой) базы данных...........................................13
5.1 Создание таблицы в режиме конструктора..............................13
5.2 Работа с данными таблицы.........................................................19
5.3 Просмотр данных в виде формы................................................19
5.4 Добавление записей с помощью формы...................................20
5.5 Поиск и замена данных...............................................................20
5.6 Сортировка данных.....................................................................20
5.7 Фильтрация данных....................................................................20
Упражнение 1...................................................................................21
6. Создание запросов.............................................................................23
6.1 Создание запросов на выборку..................................................24
6.2 Запрос с параметром (параметрический запрос)......................25
6.3 Перекрестный запрос..................................................................25
Упражнение 2...................................................................................26
6.4 Вычисляемые поля в запросах...................................................27
6.5 Итоговые запросы.......................................................................29
Упражнение 3...................................................................................30
7. Модификация данных с помощью запросов..................................31
7.1 Запрос на создание таблицы.......................................................31
7.2 Запрос на обновление.................................................................31
7.3 Запрос на добавление записей...................................................32
7.4 Запрос на удаление записей.......................................................32
Упражнение 4...................................................................................32
Самостоятельная работа..................................................................33
8. Создание запросов с использованием языка SQL..........................34
8.1 Синтаксис инструкции SELECT в MS Access..........................34
8.2 Предложение FROM...................................................................35
8.3 Предложение GROUP BY...........................................................37
8.4 Предложение HAVING...............................................................37
8.5 Предложение ORDER BY...........................................................38
8.6 Инструкция SELECT...................................................................38
8.7 Подчиненный запрос (вложенная выборка).............................39
Упражнение 5...................................................................................39
9. Создание форм и отчетов.................................................................40
54
9.1 Создание формы..........................................................................40
9.2 Формы для связанных таблиц....................................................41
9.3 Создание элементов формы или отчета....................................42
9.4 Добавление вычисляемых выражений в формы и отчеты......45
9.5 Применение условного форматирования..................................45
Упражнение 6...................................................................................45
9.6 Создание отчета...........................................................................47
Упражнение 7...................................................................................49
10. Использование VBA для автоматизации работы в MS Access...50
Упражнение 8...................................................................................51
Рекомендуемая литература
1. Дж. Вейскас Эффективная работа с MS Access 2000. Санкт-Петербург:
«Питер», 2001.
55
Скачать