- •Кафедра автоматизированных и вычислительных систем базы данных Методические указания
- •Методические указания содержат теоретические и практические сведения для создания, редактирования и использования различных объектов базы данных средствами субд Microsoft Access.
- •1. Базы данных
- •2. Работа с базой данных и таблицами
- •2.1. Запуск Access
- •2.2. Создание базы данных
- •2.3. Открытие базы данных
- •2.4. Создание таблицы в режиме Конструктор
- •2.5. Редактирование структуры таблицы
- •2.6. Создание схемы данных (связей между таблицами)
- •2.7. Редактирование схемы данных
- •2.8. Ввод и редактирование данных в таблице
- •Контрольные вопросы
- •Формы данных
- •3.1. Создание формы
- •3.2. Создание однотабличной формы в режиме автоформы
- •3.3. Редактирование формы в режиме Конструктор
- •3.4. Создание составной формы
- •3.5. Защита и контроль данных, вычисления в форме
- •Контрольные вопросы
- •Запросы
- •4.1.Типы запросов
- •4.2.Создание запросов в режиме Конструктор
- •3.Создать запрос на выборку данных с групповыми вычислениями.
- •Контрольные вопросы
- •5. Отчеты
- •5.1.Способы создания отчетов
- •5.2. Создание отчета с помощью мастера отчетов
- •5.3. Создание отчета в режиме Конструктор
- •6. Заполнение полосы Верхний колонтитул.
- •7. Заполнение полосы Заголовок группы.
- •8. Заполнение полосы Область данных.
- •9. Заполнение полосы Примечание группы.
- •10. Заполнение полосы Нижний колонтитул.
- •11. Заполнение полосы Примечание отчета.
- •1. Создать отчет с помощью мастера отчетов.
- •2. Создать отчет на основе нескольких таблиц в режиме Конструктор
- •394026 Воронеж, Московский просп., 14.
3.4. Создание составной формы
Составная форма создается для ввода и редактирования данных в двух таблицах, между которыми существует связь один ко многим. Данная связь означает, что одна запись из одной таблицы (главной) связана с несколькими записями в другой таблице (подчиненной).
Создание составной формы с помощью мастера форм осуществляется следующим образом.
Переходят во вкладку Формы и щелкают по Создать.
В диалоговом окне Новая форма выбирают режим создания – Мастер форм, ОК.
В диалоговом окне Создание форм выбирают главную таблицу из списка Таблицы/Запросы и все поля данной таблицы, используя кнопку >>.
В диалоговом окне Создание форм выбирают подчиненную таблицу из списка Таблицы/Запросы и все поля данной таблицы, используя кнопку >>, щелкают по кнопке Далее.
В следующем окне определяют тип представления данных (выбирают главную таблицу), активизируют переключатель Подчиненные формы и щелкают по кнопке Далее.
В следующем диалоговом окне выбирают вариант представления подчиненной формы (табличный), щелкают по кнопке Далее.
В следующем окне выбирают стиль оформления форм, щелкают по кнопке Далее.
В последнем окне задают имя главной и подчиненной форм и щелкают по кнопке Готово.
3.5. Защита и контроль данных, вычисления в форме
Защита данных поля от изменения. Для защиты данных поля от изменения используется свойство Блокировка. Блокировка может быть установлена для любого поля формы. Чтобы защитить таким образом поле, надо, находясь в макете формы (режим Конструктор), выделить защищаемое поле и вызвать для него контекстное меню, в котором выбрать пункт Свойства. Затем в окне свойств во вкладке Данные в строке Блокировка выбрать Да. После установки этого свойства поле доступно только для чтения.
Вычисления в каждой записи формы. Чтобы произвести вычисления на основе данных одной записи в форме, необходимо создать вычисляемый элемент управления, в который записывается выражение. Для создания вычисляемого элемента управления надо открыть форму в режиме Конструктор и, нажав на панели элементов кнопку Поле (аб|), разместить вычисляемый элемент управления в нужном месте. Затем в объект свободный вносится выражение, в объект поле надпись. Выражение должно начинаться со знака равенства (=). В качестве операндов выражения чаще всего используются имена полей, константы, а в качестве операторов – знаки арифметических операций.
Для объекта с именем Свободный вызывают контекстное меню, выбирают пункт меню Свойства, вкладку Данные, строку Данные. При этом можно внести формулу в строке Данные вручную, а можно воспользоваться кнопкой Построитель выражений (…), которая находится в данной строке. В окне построителя выражений имеется панель кнопок с различными операторами и есть возможность выбрать из списка нужные поля (активизировав во второй нижней части окна строку <список полей>) и функции.
Вычисление итоговых значений для записей подчиненной формы и вывод их в основной форме. Основная форма и ее подчиненная форма строятся на основе таблиц, между которыми установлена связь типа «один-ко-многим». При этом в основной форме выводится только одна запись, а в подчиненной форме – несколько записей, которые подчинены ей. При расчете итогового значения для группы записей подчиненной формы вычисляемое поле может быть отображено в области данных основной формы.
Пример. Пусть требуется подсчитать для каждой модели суммарную продажу (Sum([Количество])) в подчиненной форме Продажа-ПФ и вывести эти данные в области данных главной формы Устройства-Продажа. Порядок действий следующий:
отобразить подчиненную форму Продажа-ПФ в режиме конструктора;
в данной форме в области примечания формы создать вычисляемый элемент управления (с помощью кнопки Поле панели элементов) и внести туда выражение, содержащее статистическую функцию подсчета суммы =Sum([Количество]); запомнить имя созданного элемента управления (допустим это было имя “Поле10”); сохранить произведенные действия и выйти из режима конструктора;
отобразить основную форму Устройства-Продажа в режиме конструктора; в основной части формы создать поле с помощью кнопки Поле на панели элементов и записать туда выражение:
= [Продажа-ПФ] . [Form]![Поле10]
Это выражение является ссылкой на элемент управления Поле10 в подчиненной форме.
Общий формат такой ссылки имеет вид:
первый вариант ссылки
=[Имя подчиненной формы].[Form]![Имя поля в подчиненной форме]
или второй вариант ссылки
=Forms![Имя главной формы]![Имя подчиненной формы]![Имя поля].
Например:
=Forms![Устройства-Продажа]![Продажа-ПФ]![Поле10]
Пересчет поля в главной форме при изменении или вводе значения в поле подчиненной формы. Пусть имеются основная форма Устройства-Продажа и подчиненная форма Продажа-ПФ для таблиц Устройства и Продажа, между которыми существует связь «один-ко-многим». Требуется пересчитывать поле Кол-во на складе в основной форме при изменении или вводе данных в поле Количество в подчиненной форме, если поле Количество меньше или равно поля Кол-во на складе, в противном случае выдать сообщение об ошибке и обеспечить повторный ввод информации. Порядок действий:
отобразить подчиненную форму Продажа-ПФ в режиме конструктора;
выделить поле Количество и открыть для него окно свойств (кнопка Свойства на панели инструментов или в контекстном меню пункт Свойства);
в окне свойств перейти во вкладку События, в строке После обновления щелкнуть по кнопке Построитель выражений, выбрать пункт меню Программы и щелкнуть по кнопке ОК; при этом мы попадаем в процедуру обработки события;
набрать следующие операторы
If forms![Устройства-Продажа]![Кол-во на складе]> [Количество] Then
forms![Устройства-Продажа]![Кол-во на складе] = forms![Устройства-Продажа]![Кол-во на складе] - [Количество]
Else
[Количество] = null
[Дата продажи].SetFocus
[Количество].SetFocus
MsgBox “ Количество больше количества на складе “, vbOKOnly
End If
сохранить процедуру, закрыть окна процедуры, свойств, конструирования формы.
ЛАБОРАТОРНАЯ РАБОТА № 2
СОЗДАНИЕ ОДНОТАБЛИЧНЫХ И СОСТАВНЫХ ФОРМ
1. Ввести данные в таблицу Виды устройств во вкладке Таблицы, используя кнопку Открыть. Данные для ввода в таблицу Виды устройств:
Материнские платы
Процессоры
Модули памяти
Винчестеры
Видеокарты
Корпуса
Накопители
Звуковые платы и колонки
2. Во вкладке Формы создать Автоформу в столбец для таблицы Устройства, форму назвать Устройства.
В режиме Конструктор осуществить редактирование формы:
в заголовок формы добавить надпись Форма УСТРОЙСТВА; произвести редактирование надписи (выбрать размер шрифта 14-16, полужирное начертание, выбрать цвет и рамку для надписи и т.д.);
в заголовок формы добавить: кнопку выхода из формы, кнопку поиска записей;
поля Вид и Гарантия должны быть организованы как поля с раскрывающимися списками;
выбрать фон для заголовка формы и области данных;
добавить в форму вычисляемое поле Цена в уе (=[Розничная цена] / 43).
С помощью созданной формы ввести следующие данные.
Модель |
Вид |
Кол-во на складе |
Розничная цена |
Гарантия |
Системная плата Abit BE6-II Slot1 |
Материн-ские платы |
123 |
2136 |
1 год |
Системная плата Abit KT7A-Raid |
Материнские платы |
87 |
3146 |
1 год |
Системная плата Intel D815EPFV |
Материнские платы |
56 |
3236 |
1 год |
Системная плата Intel D845WN |
Материнские платы |
145 |
4058 |
1 год |
Процессор AMD Duron 700 |
Процессоры |
46 |
1193 |
1 год |
Процессор AMD Duron 1100 |
Процессоры |
76 |
2417 |
1 год |
Процессор Intel Celeron 700 |
Процессоры |
110 |
1527 |
1 год |
Процессор Intel Celeron 1000 |
Процессоры |
90 |
2620 |
1 год |
Жесткий диск HDD 20.4Gb |
Винчестеры |
45 |
3061 |
2 года |
Жесткий диск HDD 20Gb |
Винчестеры |
34 |
2652 |
2 года |
Жесткий диск HDD 20.5Gb
|
Винчестеры |
23 |
3132 |
2 года |
Корпус Minitower JNC-8 |
Корпуса |
45 |
594 |
6 месяцев |
Корпус Minitower H312 |
Корпуса |
38 |
984 |
6 месяцев |
Корпус Miditower Colegen |
Корпуса |
56 |
1541 |
6 месяцев |
3. Создать составную форму, используя мастера форм для таблиц Устройства и Продажа (выбрать вариант - подчиненная форма, выбрать табличный вид для подчиненной формы, назвать главную форму Устройства-Продажа, подчиненную форму Продажа-ПФ).
В режиме Конструктор осуществить редактирование составной формы:
в заголовок главной формы добавить надпись Форма УСТРОЙСТВА-ПРОДАЖА; произвести редактирование надписи (выбрать размер шрифта 14-16, полужирное начертание, выбрать цвет и рамку для надписи и т.д.);
в заголовок главной формы добавить: кнопку выхода из формы, кнопку поиска записей;
поле Вид в главной форме должны быть организовано как поле с раскрывающимся списком;
установить такой размер окна для подчиненной формы, чтобы было видно максимальное число полей из данной формы;
защитить поле Модель в главной форме от изменения;
при вводе данных в поле Количество уменьшать поле Кол-во на складе, если поле Количество меньше или равно поля Кол-во на складе, в противном случае выдать сообщение об ошибке и обеспечить повторный ввод количества;
вычислить для каждой модели суммарную продажу (Sum([Количество]) в подчиненной форме Продажа-ПФ и вывести эти данные в области данных главной формы Устройства-Продажа.
С помощью созданной формы ввести следующие данные в таблицу Продажа:
Модель и Номер чека в Продажу не вводятся, приведены для наглядности.
Номер чека |
Модель |
Дата продажи |
Количество |
Вносит программа |
Системная плата Abit BE6-II Slot1 |
8.04.13 |
1 |
|
Системная плата Abit BE6-II Slot1 |
8.04.13 |
1 |
|
Системная плата Intel D815EPFV |
9.04.13 |
1 |
|
Системная плата Intel D815EPFV |
10.04.13 |
1 |
|
Системная плата Intel D815EPFV |
11.04.13 |
1 |
|
Процессор AMD Duron 700 |
9.04.13 |
1 |
|
Процессор AMD Duron 700 |
9.04.13 |
1 |
|
Процессор Intel Celeron 1000 |
12.04.13 |
1 |
|
Жесткий диск HDD 20.4 Gb |
11.04.13 |
1 |
|
Жесткий диск HDD 20.4 Gb |
11.04.13 |
1 |
|
Жесткий диск HDD 20 Gb |
8.04.13 |
1 |
|
Жесткий диск HDD 20 Gb |
13.04.13 |
1 |
|
Корпус Minitower JNC-8 |
8.04.13 |
1 |
|
Корпус Minitower JNC-8 |
9.04.13 |
1 |
|
Корпус Miditower Colegen |
12.04.13 |
1 |
|
Корпус Miditower Colegen |
11.04.13 |
1 |