Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TipovoyOtchet / Lab3.doc
Скачиваний:
24
Добавлен:
19.03.2015
Размер:
311.3 Кб
Скачать

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).

В область Примечание формы (см.образец) вставьте следующие поля:

  1. Поле ПромежуточнаяСумма со свойствами: Имя – ПромежуточнаяСумма, Данные - =CCur([Подчиненная форма заказов].[Form]![ПромежуточнаяСумма]), Формат поля – Денежный, Число десятичных знаков – 2, Доступ – Нет.

  2. Поле СтоимостьДоставки.

  3. Поле Итого со свойствами: Имя – Итого, Данные - =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. Создание кнопочной формы.

Выберите в меню СервисНадстройкиДиспетчер кнопочных форм. Создайте кнопочную форму с одной страницей: Главная кнопочная форма (по умолчанию).

На странице Главная кнопочная форма создайте элементы:

  • Ввод/просмотр заказов – открытие формы Заказы в режиме редактирования.

  • Ввод/просмотр списка поставщиков – открытие формы Поставщики в режиме редактирования.

  • Ввод/просмотр списка клиентов – открытие формы Клиенты в режиме редактирования.

  • Ввод/просмотр списка сотрудников – открытие формы Сотрудники в режиме редактирования.

  • Просмотр типов товаров – открытие формы Типы в режиме редактирования.

  • Просмотр типов доставки – открытие формы Доставка в режиме редактирования.

  • Выход – выход из приложения.

Выберите меню Сервис Параметры запуска. В строке Заголовок приложения укажите Фирма, в строке ФормаКнопочная форма. В этом случае при загрузке файла базы данных кнопочная форма будет загружаться автоматически. Задайте пароль для доступа к базе данных: меню Сервис Защита Задать пароль базы данных.

Соседние файлы в папке TipovoyOtchet