- •И.Б. Кушнир
- •Оглавление
- •Введение
- •1. Основы информационных систем и баз данных
- •1.1. Информационные системы1
- •1.2. Базы данных
- •Контрольные вопросы
- •Тестовые задания
- •2. Общие вопросы разработки баз данных субд Access
- •2.1. Рабочая среда Access
- •Концепция базы данных
- •Таблицы
- •Запросы
- •Страницы
- •Макросы
- •2.2. Задание для самостоятельной работы
- •Варианты заданий
- •2.3. Пример выполнения задания2
- •Поставщики
- •Контрольные вопросы
- •Тестовые задания
- •3. Создание и корректировка базы данных в субд
- •Типы данных и задание связей в базе данных
- •Типы данных, обрабатываемых в Access [8, с. 45]
- •3.2. Задание для самостоятельной работы
- •3.3. Пример выполнения работы
- •3.3.1. Создание базы данных
- •3.3.2. Создание структуры таблиц в режиме конструктора Создание структуры таблицы Поставщики
- •Создание структуры таблицы Товары
- •3.3.3. Связывание таблиц
- •3.3.4. Ввод данных3
- •3.3.5. Редактирование записи
- •3.3.6. Удаление записи
- •3.3.7. Поиск и сортировка данных
- •Сортировка
- •Поиск записи
- •Фильтрация записей
- •Расширенный фильтр
- •3.3.8. Печать в режиме таблицы
- •Контрольные вопросы
- •Тестовые задания
- •4. Запросы на выборку
- •4.1. Способы создания запроса4
- •Примеры часто используемых операторов и функций5
- •4.2. Задание для самостоятельной работы
- •Варианты заданий
- •4.3. Пример выполнения задания
- •4.3.1. Создание запроса
- •4.3.2. Редактирование запроса
- •Контрольные вопросы
- •Тестовые задания
- •5. Вычисления в запросах: простые, групповые
- •5.1. Общие сведения о расчетах в запросах6
- •Типы операций [8, с. 128]
- •Сведения о стипендиатах
- •Перекрестная таблица
- •5.2. Задание для самостоятельной работы
- •Варианты заданий
- •5.3. Пример выполнения задания
- •5.3.1. Вычисления в запросе
- •5.3.2. Итоговые запросы
- •5.3.3. Сводные таблицы7
- •Изменение структуры сводной таблицы
- •Фильтрация
- •Авс-анализ
- •Детализация
- •Контрольные вопросы
- •Тестовые задания
- •6. Формы
- •6.1. Общая характеристика экранных форм8
- •6.2. Задание для самостоятельной работы
- •Варианты заданий
- •6.3. Пример выполнения задания
- •6.3.1. Простая форма
- •6.3.2. Составная форма, основанная на двух таблицах
- •6.3.3. Составная форма, основанная на таблице и запросе
- •6.3.4. Составная форма с вычисляемым полем в главной форме
- •6.3.5. Редактирование формы
- •Контрольные вопросы
- •Тестовые задания
- •7. Отчеты
- •7.1. Общая характеристика отчетов9
- •7.2. Задание для самостоятельной работы
- •Варианты заданий
- •7.3. Пример выполнения задания
- •7.3.1. Создание автоотчета
- •7.3.2. Нумерация и сортировка данных в отчете
- •7.3.3. Группировка и подсчет итогов в отчете
- •7.3.4. Подотчет в отчете
- •Контрольные вопросы
- •Тестовые задания
- •8. Web-интерфейс к базам данных Access
- •8.1. Общая характеристика страниц доступа к данным10
- •8.2. Задание для самостоятельной работы
- •Варианты заданий
- •8.3. Пример выполнения задания
- •8.3.1. Создание автостраницы
- •8.3.2. Создание страницы с помощью Мастера
- •8.3.3. Создание и изменение страниц доступа к данным в режиме Конструктора
- •Контрольные вопросы
- •Тестовые задания
- •9. Настройка пользовательского интерфейса
- •9.1. Общая характеристика элементов управления и их свойств
- •9.2. Задание для самостоятельной работы
- •9.3. Пример выполнения задания
- •9.3.1. Создание кнопочной формы
- •9.3.2. Добавление кнопок в форму
- •9.3.3. Макрос для открытия запроса
- •9.3.4. Задание условий отбора в макросе
- •9.3.5. Настройка параметров запуска
- •Контрольные вопросы
- •Тестовые задания
- •Заключение
- •Библиографический список
- •Приложение 1 (справочное) Типы связи
- •Приложение 2 (справочное) Синтаксис масок ввода
- •Маски ввода
- •Примеры масок ввода
- •Учебное издание
6.3.3. Составная форма, основанная на таблице и запросе
Создадим форму, содержащую информацию о сотрудниках и оформ-ленных ими заказах с указанием их сумм. В качестве базовой таблицы для главной формы будет выступать таблица Сотрудники. В качестве базовой таблицы для подчиненной формы следует использовать таблицу Заказы, так как именно она устанавливает перечень заказов по каждому сотруднику. Данные о названии и цене заказанных товаров должны выбираться из другой таблицы – Заказано. В итоге источником данных для подчиненной формы станет следующий запрос, бланк которого приведен на рисунке 6.12.
Рис. 6.12. Запрос-источник для подчиненной формы
Обычно подчиненную форму синхронизируют с главной формой по некоторому полю так, чтобы в подчиненной форме отбирались лишь записи, соответствующие текущей записи в главной форме. Поле для синхронизации в главной форме именуют основным полем, а в подчиненной – подчиненным полем.
В нашем примере основным полем следует выбрать поле КодСотрудника из таблицы Сотрудники, а подчиненным – поле КодСотрудника из созданного запроса ЗаказыСотрудников. Таким образом, в подчиненной форме, основанной на запросе, будут отбираться строки, соответствующие текущему сотруднику.
Порядок создания составной формы, основанной на таблице и запросе такой же, как было описано выше. Однако следует особо обратить внимание на источник данных для подчиненной формы – теперь это будет запрос ЗаказыСотрудников, из которого следует перенести в окно доступные поля все поля, кроме поля КодСотрудника (рис. 6.13).
Рис. 6.13. Выбор полей для подчиненной формы из запроса
Продолжите самостоятельно построение составной формы Оформленные сотрудниками заказы, следуя описанным выше инструкциям. В результате вы должны получить форму, представленную на рисунке 6.14. Если составная форма была создана правильно, тогда в подчиненной форме будут выводиться только те заказы, которые оформлял сотрудник, указанный в главной форме.
Рис. 6.14. Составная форма Оформленные сотрудниками заказы
6.3.4. Составная форма с вычисляемым полем в главной форме
Создадим составную форму, которая будет содержать сведения о клиентах и сделанных ими заказах, а также содержать общую сумму всех заказов конкретного клиента.
Итак, сначала следует создать составную форму, основанную на таблице и запросе. В качестве базовой таблицы для главной формы будет выступать таблица Клиенты, а для подчиненной следует создать специальный запрос, объединяющий поля из таблиц Заказы и Заказано, а также специальное поле, которое вычисляет сумму. Создайте самостоятельно составную форму. В итоге вы должны получить форму, представленную на рисунке 6.15.
Рис. 6.15. Составная форма Суммы заказов клиентов
Теперь необходимо в главную форму добавить вычисляемое поле, показывающее общую сумму всех заказов конкретного клиента. Создание такого поля – процедура, состоящая из двух шагов: создание в подчиненной форме ДляКлиентов текстового поля, вычисляющего общую сумму заказов данного клиента, и создание в форме Суммы заказов клиентов поля, отображающего вычисленное значение.
Сначала создайте свободное текстовое поле и вычисляемый элемент управления, поле ИТОГО в примечании формы ДляКлиентов подчиненная форма.
Откройте форму ДляКлиентов подчиненная форма в режиме конструктора и наведите указатель на нижнюю границу полосы Примечание формы, и, когда он превратится в двунаправленную стрелку, перетащите границу вниз примерно на 1,5 см (рис. 6.16).
Рис. 6.16. Задание свойств для вычисляемого поля
На панели инструментов нажмите кнопку Поле и щелкните в области примечания формы – появится новое текстовое поле и его надпись.
Щелкните правой кнопкой в текстовом поле и выберите Свойства в появившемся меню. На вкладке Все в поле Имя введите Итого, а в поле Данные – выражение =Sum([ОтпускнаяЦена]).
Закройте окно свойств, сохраните и закройте форму ДляКлиентов подчиненная форма.
Поскольку примечание формы скрыто, вы не увидите результатов вычислений, пока не выведите их в текстовом поле в главной форме. Поэтому теперь необходимо создать свободное текстовое поле в главной форме Суммы заказов клиентов, которое будет отображать общую сумму всех заказов клиента, подсчитанную в примечании подчиненной формы.
Откройте форму Суммы заказов клиентов в режиме конструктора. На панели инструментов нажмите кнопку Поле и щелкните рядом с полем Телефон – появится новое текстовое поле и его надпись. Измените надпись нового поля на «Заказано всего на сумму».
Щелкните правой кнопкой в текстовом поле и выберите Свойства в появившемся меню (рис. 6.17).
Рис. 6.17. Задание свойств свободного поля
для отображения результатов из подчиненной формы в главную
На вкладке Все в поле Имя введите КлиентИтого, а в поле Данные введите выражение
=[ДляКлиентов подчиненная форма].[Form]![Итого]
Это выражение определяет элемент управления, значение которого необходимо отобразить в текстовом поле. Выражение использует синтаксис скрытого языка программирования.
В поле Формат щелкните на стрелке вниз и выберите формат Денежный.
Закройте окно свойств и сохраните форму Суммы заказов клиентов. Переключитесь в режим формы. Ваша форма будет выглядеть так, как показано на рисунке 6.18. Новое поле Заказано всего на сумму показывает общую стоимость всех заказов, сделанных клиентом.
Рис. 6.18. Составная форма с вычисляемым полем