- •Министерство общего и профессионального образования
- •Введение
- •1. Создание и изменение форм
- •1.1. Создание форм
- •Создание формы с помощью мастера
- •Создание формы без помощи мастера
- •1.2. Режимы отображения формы
- •1.3. Выделение элемента управления
- •1.4. Включение привязки к сетке
- •1.5. Задание значений свойств формы
- •1.6. Изменение порядка перехода в форме
- •1.7. Вычисление итогов
- •1.8. Условия на значение и ограничение допустимых данных в формах
- •1.9. Краткая характеристика связанных (подчиненных) форм
- •1.10. Общие сведения об элементах управления
- •2. Повышение быстродействия форм и подчиненных форм
- •Выполнение работы
- •Контрольные вопросы
- •Литература
2. Повышение быстродействия форм и подчиненных форм
Существует ряд способов повышения быстродействия форм. Наряду с приведенными ниже советами пользователь имеет возможность проверить формы в собственной базе данных с помощью анализатора быстродействия.
Советы по повышению производительности:
Не создавайте перекрывающиеся элементы управления.
Не создавайте лишние рисунки и другие графические объекты.
Замените свободные рамки объекта, в которых выводится графика, на рамки рисунков.
Старайтесь использовать черно-белые, а не цветные рисунки.
Закрывайте неиспользуемые формы.
Если базовый источник записей формы содержит много записей, а форму требуется использовать, в основном, для ввода новых записей, задайте для свойства формы Ввод данных (DataEntry) значение «Да». Форма при этом будет открываться с пустой записью. Если открыть форму со всеми выводящимися записями, то прежде чем будет открыта пустая запись в конце формы, Microsoft Access должен считать все имеющиеся записи.
Не сортируйте записи в базовом запросе, так как порядок записей имеет важное значение, особенно для многотабличных запросов.
Создавайте подчиненные формы на базе запросов, а не на базе таблиц, и включайте в подчиненную форму только необходимые поля. Лишние поля замедляют выполнение подчиненной формы.
Индексируйте все поля в подчиненной форме, связываемые с главной формой.
Индексируйте любое поле в подчиненной форме, используемое для указания условий.
Задайте для свойств Разрешить изменения (AllowEdits), Разрешить добавление (AllowAdditions) и Разрешить удаление (AllowDeletions) подчиненной формы значения Нет, если не предполагается изменять данные в подчиненной форме. Или задайте для свойства Тип набора записей (RecordsetType) значение «Статический набор».
Выполнение работы
1. Создание автоформ.
1.1. Автоформа в столбец Клиенты.
1.1. 1. В окне базы данных нажмите кнопку Создать, выберите пунктАвтоформа: в столбец, в качестве источника данных укажите таблицуКлиентыи нажмите кнопкуОК.
1.2. Автоформа ленточная Клиенты.
1.2. 1. В окне базы данных нажмите кнопку Создать, выберите пункт Автоформа: ленточная, в качестве источника данных укажите таблицу Клиенты и нажмите кнопку ОК.
1.3. Автоформа табличная Клиенты.
1.3. 1. В окне базы данных нажмите кнопку Создать, выберите пункт Автоформа: табличная, в качестве источника данных укажите таблицу Клиенты и нажмите кнопку ОК.
2. Создание автоформ с диаграммой.
2.1.Автоформа Диаграмма по результатам продаж по сотрудникам.
2.1.1. В окне базы данных нажмите кнопку Создать, выберите пунктДиаграмма, в качестве источника данных укажите таблицуРезультаты продаж по сотрудникам за квартали нажмите кнопкуОК. В качестве полей диаграммы укажите поляФамилияиСумма продаж. Выберите тип диаграммы – объемная гистограмма. В ячейкуРядывнесите полеФамилия, в ячейкуДанные– полеСумма продажи.
2.1.2. Откройте созданную форму в режиме конструктора, выделите область диаграммы и нажмите кнопку Свойства на панели инструментов. В открывшемся окне Свободная рамка объекта в поле Источник строк нажмите кнопку построителя запросов, откройте исходный запрос и название поля Сумма_Сумма продажи измените на Объем продаж.
2.1.3. Откройте созданную форму в режиме формы и сравните результат с образцом.
3. Создание простых форм с помощью Мастера форм.
3.1. Форма Клиенты.
3.1.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм, в качестве источника данных укажите таблицу Клиенты и нажмите кнопку ОК. Выберите все поля.
3.2. Форма Доставка.
3.2.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм, в качестве источника данных укажите таблицу Доставка и нажмите кнопку ОК. Выберите все поля.
3.3. Форма Сотрудники.
3.3.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм, в качестве источника данных укажите таблицу Сотрудники и нажмите кнопку ОК. Выберите все поля.
3.4. Форма Типы.
3.4.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм, в качестве источника данных укажите таблицу Типы и нажмите кнопку ОК. Выберите все поля.
3.5. Форма Товары.
3.5.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм, в качестве источника данных укажите таблицу Товары и нажмите кнопку ОК. Выберите все поля.
4. Создание в режиме конструктора диалоговых окон и использование их в запросах.
4.1. Форма Продажи по фирмам.
4.1.1. В окне базы данных нажмите кнопкуСоздать, выберите пункт Конструктор. В открывшейся области данных разместите два поля (см.образец). Задайте свойства поля Начальная дата: Формат поля – Краткий формат даты, Значение по умолчанию - = «01.01.99», Имя – НачальнаяДата. Задайте свойства поля Конечная дата: Формат поля – Краткий формат даты, Значение по умолчанию - = «31.12.99», Имя – КонечнаяДата. Задайте свойства формы: Подпись – Диалоговое окно «Продажи по фирмам», Допустимые режимы – Форма, Полосы прокрутки – Отсутствуют, Область выделения – Нет, Поле номера записи – Нет, Разделительные линии – Нет, Выравнивание по центру – Да, Тип границы – Окна диалога, Модальное окно – Да. Закройте форму.
4.1.2. Перейдите на вкладку Запросы. Создайте в режиме конструктора запрос Объем продаж по фирмам, включив в него поля КодЗаказа, ДатаРазмещения из таблицы Заказы, поле Название из таблицы Клиенты. Создайте поле Сумма продажи: Sum(CCur([Цена]*[Количество]*(1-[Скидка]))). Задайте сортировку по полю Название по возрастанию. Создайте групповую операцию со значением Группировка для всех полей, кроме поля Сумма продажи, для которого задайте значение Выражение. Для поля ДатаРазмещения задайте в строке Условие отбора выражение: Between [Forms]![Продажи по фирмам]![НачальнаяДата] And [Forms]![Продажи по фирмам]![КонечнаяДата].
4.1.3. Перейдите на вкладку Формы. Откройте созданную форму Продажи по фирмам в режиме конструктора. Вставьте в область данных две кнопки. В предложенных мастером кнопок действиях выберите для первой кнопки - запуск запроса и выберите запрос Объем продаж по фирмам, задайте имя кнопки – ОК. Для второй кнопки выберите действие – закрытие формы, задайте имя кнопки – Отмена.
4.1.4. Откройте форму в режиме формы, задайте значение начальной даты – 01.01.99 г. и значение конечной даты – 31.12.99 г. и сравните результаты запроса с образцом.
Код заказа |
Фирма |
Дата размещения |
Сумма продажи |
1 |
Евро |
01.03.99 |
1 895р. |
2 |
Кентавр |
20.05.99 |
3 375р. |
3 |
Стелла |
24.07.99 |
7 600р. |
5. Создание связанных форм.
5.1. Форма Поставщики.
5.1.1. В окне базы данных нажмите кнопку Создать, выберите пунктМастер форми нажмите кнопкуОК. Из таблицыПоставщикивыберите все поля, из таблицыТовары– поляМарка,ЕдиницаИзмерения,Цена,ПоставкиПрекращены, нажмите кнопкуДалее. Выберите пунктСвязанные формы. ДляФормы 1задайте имяПоставщики, дляФормы 2–Список товаров.
5.1.2. Откройте формуСписок товаров в режиме конструктора и расположите поля в соответствии с образцом:
6.1.3. Откройте форму Поставщики в режиме конструктора и откорректируйте ее в соответствии с образцом, добавив еще одну кнопку.
Выделите созданную кнопку, затем нажмите кнопкуСвойства на панели инструментов. На вкладке События в строке Нажатие кнопки введите следующую Процедуру обработки событий:
Dim strDocName As String
strDocName = "Товары"
' Открытие формы "Товары" в режиме ввода данных.
' Сохранение значения поля КодПоставщика в аргументе
' OpenArgs формы.
DoCmd.OpenForm strDocName, , , , acAdd, , Me!КодПоставщика
' Закрытие формы "Список товаров".
DoCmd.Close acForm, "Список товаров"
' Передача фокуса элементу "Марка".
Forms![Товары]!Марка.SetFocus
Теперь при нажатии кнопки Ввод товаров форма Товары всегда будет открываться в режиме добавления записей.
6. Создание формы, имеющей подчиненную форму.
6.1. Форма Заказы.
6.1.1. В окне базы данных нажмите кнопку Создать, выберите пункт Мастер форм и нажмите кнопку ОК. Из запроса Заказы Запрос выберите все поля, из запроса Сведения о заказах – поля КодТовара, Цена, Количество, Скидка, ОтпускнаяЦена, нажмите кнопку Далее. Выберите пункт Подчиненные формы. Выберите табличный вид подчиненной формы. Задайте имена: для Формы – Заказы, для Подчиненной формы – Подчиненная форма заказов. Проверьте, что поле КодТовара явлется полем со списком, иначе его необходимо преобразовать по типу соответствующего поля в таблице Товары.
Откройте форму Подчиненная форма заказов в режиме конструктора. Выделите поле КодТовара, нажмите кнопку Свойства на панели инструментов, на вкладке События в строке После обновления вставьте Процедуру обработки событий:
Dim strFilter As String
' Определяет фильтр перед его передачей в функцию DLookup.
strFilter = "КодТовара = " & Me!КодТовара
' Ищет поле "Цена" и присваивает его значение элементу управления "Цена".
Me!Цена = DLookup("Цена", "Товары", strFilter)
ВобластьПримечание формы вставьте поле (см.образец) со следующими свойствами: Имя – ПромежуточнаяСумма, Данные - =Sum([ОтпускнаяЦена]), Формат поля – Денежный, Число десятичных знаков – 2.
6.1.3. Откройте форму Заказы в режиме конструктора и расположите имеющиеся поля по образцу. Поле Представитель продублируйте. Для полей, относящихся к клиенту, - Представитель, Индекс, Область, Город, Адрес, КодЗаказа в свойствах в строке Доступ задайте Нет. Для поля ДатаРазмещения задайте Значение по умолчанию равным Date(). Проверьте, чтобы поля КодКлиента и КодСотрудника являлись полями со списком, иначе их необходимо преобразовать по типу соответствующих полей в таблицах Клиенты и Сотрудники. Из поля КодДоставки создайте группу флажков для каждого значения КодаДоставки (например, для доставки почтой Значение параметра флажка = 2).
В область Примечание формы (см.образец) вставьте следующие поля:
Поле ПромежуточнаяСумма со свойствами: Имя – ПромежуточнаяСумма, Данные - =CCur([Подчиненная форма заказов].[Form]![ПромежуточнаяСумма]), Формат поля – Денежный, Число десятичных знаков – 2, Доступ – Нет.
Поле СтоимостьДоставки.
Поле Итого со свойствами: Имя – Итого, Данные - =CCur([ПромежуточнаяСумма] + [СтоимостьДоставки]), Формат поля – Денежный, Число десятичных знаков – 2, Доступ – Нет.
Под заголовком Работа с записями вставьте кнопки Поиск записи, Удаление записи, Печать записи. Отдельно вставьте кнопку Закрытие формы.
6.1.4. В режиме конструктора выделите поле КодКлиента и нажмите кнопку Свойства на панели инструментов. На вкладке События в строке До обновления вставьте следующую Процедуру обработки событий:
Private Sub КодКлиента_BeforeUpdate(Cancel As Integer)
' Вывод сообщения, если поле кода клиента пусто.
Dim strMsg As String, strTitle As String
Dim intStyle As Integer
If IsNull(Me!КодКлиента) Or Me!КодКлиента = "" Then
strMsg = "Необходимо выбрать значение из списка 'К оплате'."
strTitle = "Не указан клиент"
intStyle = vbOKOnly
MsgBox strMsg, intStyle, strTitle
Cancel = True
End If
End Sub
В строке После обновления вставьте Процедуру обработки событий:
Private Sub КодКлиента_AfterUpdate()
‘ Присваиваются значения полям формы
Me!Получатель = Me![КодКлиента].Column(1)
End Sub
6.1.5. Откройте форму Заказы в режиме формы и сравните с образцом:
6.1.6. Введите в форму несколько новых заказов и просмотрите соответствующие записи в таблицах Заказы и Заказано.
7. Создание кнопочной формы.
Выберите в меню Сервис Надстройки Диспетчер кнопочных форм. Создайте кнопочную форму с одной страницей: Главная кнопочная форма (по умолчанию).
На странице Главная кнопочная форма создайте элементы:
Ввод/просмотр заказов – открытие формы Заказы в режиме редактирования.
Ввод/просмотр списка поставщиков – открытие формы Поставщики в режиме редактирования.
Ввод/просмотр списка клиентов – открытие формы Клиенты в режиме редактирования.
Ввод/просмотр списка сотрудников – открытие формы Сотрудники в режиме редактирования.
Просмотр типов товаров – открытие формы Типы в режиме редактирования.
Просмотр типов доставки – открытие формы Доставка в режиме редактирования.
Выход – выход из приложения.
Выберите меню Сервис Параметры запуска. В строке Заголовок приложения укажите Фирма, в строке Форма – Кнопочная форма. В этом случае при загрузке файла базы данных кнопочная форма будет загружаться автоматически. Задайте пароль для доступа к базе данных: меню Сервис – Защита – Задать пароль базы данных.