ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.05.2024
Просмотров: 36
Скачиваний: 0
18
End If Next
End Sub
В процедуре используется форма обращения Me к форме, в модуле которой расположена данная процедура обработки события. Цикл For перебирает все элементы управления формы, пронумерованные от нуля до Me.Count - 1. У каждого элемента управления проверяется его свойство Tag (дополнительные сведения). Если в дополнительные сведения записана единица, то свойству DefaultValue (значение по умолчанию) присваивается значение Value этого элемента (Me(i)). Значением свойства DefaultValue должен быть текст. Правая часть оператора присваивания должна быть заключена в кавычки. Для представления текста в виде кавычек нужно повторить кавычки 4 раза (пара кавычек в кавычках), так как в текстовой строке для представления кавычек используют пару кавычек.
Если для поля в таблице или для элемента управления формы в режиме конструктора устанавливается свойство “Значение по умолчанию”, MS Access при выводе новой записи в форме автоматически вставляет значение этого свойства в данное поле или в данный элемент. Присваивание свойству “Значение по умолчанию” в режиме конструктора полезно в том случае, если нужно использовать некоторое значение во всех новых записях или применить выражение, включаемое во все новые записи. Так, если это свойство содержит выражение =Date(), то в данном элементе управления всегда будет выводиться текущая дата. Чтобы указать, что мы имеем дело не с выражением или именем поля, обычный текст заключается в кавычки.
Процедура обработки событий Form_AfterUpdate при каждом обновлении формы проверяет свойство Tag каждого элемента управления. Чтобы текущее значение элемента управления стало значением по умолчанию, нужно перейти в режим конструктора и установить его свойство “Дополнительные сведения” в единицу. Процедура Form_AfterUpdate облегчает ввод данных в поле, значения в котором от записи в записи редко изменяются.
Пример 9
Sub Должность_AfterUpdate()
Dim rst As Recordset
19
Dim Критерий As String, k As Integer
Критерий = “Должность = “”” & Должность & “””” Set rst = Me.RecordsetClone
rst.FindLast Критерий If Not rst.NoMatch Then
For k = 0 To Me.Count – 1 If Me(k).Tag = “1” Then
Me(k).Value = rst (Me(k).Name) End If
Next End If End Sub
В данном примере используется другой метод облегчения ввода данных путем поиска информации в некоторой записи и копирования ее данных в новую запись..
Критерий поиска записи представляет собой строку и заключен в кавычки. Сам критерий имеет форму равенства. Справа и слева от знака равенства – поле Должность. Правая Должность заключена в кавычки и в процессе поиска остается неизменной. Это название должности, которое введено в соответствующее поле новой записи.
Метод FindLast находит последнюю запись, в которой та же должность, что и только что введенная. Если запись с такой же должностью найдена, цикл For обеспечивает просмотр всех элементов управления формы. Если свойство Tag содержит единицу, выполняется присваивание свойству Value этого элемента результата вычисления выражения rst(frm(k).Name). В этом выражении используется элемент строки базового набора, найденной методом FindLast. Значение этого поля присваивается соответствующему элементу новой записи.
Пусть, например, базовая таблица имеет вид
Пре- |
Фамилия |
Степень |
Звание |
Должность |
||
пода- |
||||||
ватель |
|
|
|
|
|
|
1 |
Блохин |
|
|
Ассистент |
||
2 |
Тараканов |
Д.т.н |
Доцент |
Профессор |
||
3 |
Комаров |
К.т.н |
Доцент |
Доцент |
||
4 |
Бабочкин |
Д.т.н |
Профессор |
Профессор |
||
5 |
Шмелев |
К.т.н |
|
Ст.преподаватель |
||
6 |
|
К.т.н |
Доцент |
Доцент |
|
|
|
|
|||||
|
|
|
|
|
|
|
20
. Элемент управления Должность представляет собой раскрывающийся список со свойствами:
Имя элемента управления |
Должность |
Данные |
Должность |
Тип источника строк |
Список значений |
Источник строк |
Ассистент; Ст.преподаватель; |
|
Доцент; Профессор |
Число столбцов |
1 |
Заглавия столбцов |
Нет |
Связанный столбец |
1 |
Уполей Степень и Звание в свойство Tag записана единица.
Вновой строке из раскрывающегося списка выбрана должность “Доцент”. Степень и звание автоматически вставлены из строки 3 (это последняя строка с такой должностью). В новую строку осталось ввести только номер преподавателя и фамилию.
Пример 10
Sub Form_Timer() Dim db As Database Dim R As RecordSet
Set db = DBEngine.WorkSpaces(0).Databases(0) Set R = db. OpenRecordSet (“Заставка”)
If Me.TimerInterval <> 0 Then
If R.Fields(“Отображать”).Value = 0 Then DoCmd.OpenForm “Введение”
Else
DoCmd.OpenForm “Счет” End If
End If
R.Close
DoCmd.Close A_Form, “Заставка” End Sub
Обычно при открытии БД вначале выводится специальная заставка. Это можно обеспечить командой Сервис|Параметры запуска, которая открывает диалоговое окно, содержащее поле для ввода имени формызаставки.
Процедура обработки события Form_Timer установлена в модуле формы “Заставка”. Заставка выводится кратковременно со сведениями
21
о правах интеллектуальной собственности, эмблеме и т.п. Затем открывается форма Введение, содержащая более подробные сведения о приложении.
Закрытие формы Введение приводит к запуску формы, с которой и ведется основная работа (в рассматриваемом примере это форма Счет). Для этого необходимо свойству Закрытие формы Введение присвоить процедуру обработки события
Private Sub Form_Close()
DoCmd.OpenForm(“Счет”) End Sub
Для закрытия формы Введение можно установить кнопку с помощью мастера кнопок.
Вывод формы Введение можно отменить и сразу перейти к форме Счет. Для этого на форме Введение следует установить флажок с подписью “Не отображать введение”. Для запоминания состояния флажка служит таблица Заставка с одним полем “Отображать” логического типа.
Инструкция Set устанавливает переменную R на таблицу Заставка. Внешняя инструкция If проверяет значение свойства формы TimerInterval (Интервал таймера). Если оно не равно нулю, выполняется внутренняя инструкция If. В ней проверяется состояние поля “Отображать” таблицы Заставка. Если в нем записано Нет (флажок “Не отображать введение” не установлен), то с помощью метода OpenForm открывается форма Введение. Если флажок установлен, открывается форма
Счет.
Задание
При разработке учебной базы данных самостоятельно составить и отладить процедуру с использованием объектов доступа к данным.
Список рекомендуемой литературы
Бессонов Е.А. Access. Программирование на языке SQL: Методические указания к лаб. работе/ КузГТУ. Кемерово,2001.
Бессонов Е.А. Access. Пользовательские функции: Методические указания к лаб. работе/ КузГТУ. Кемерово,2002.
Бессонов Е.А. Access. Объекты и события: Методические указания к лаб. работе/ КузГТУ. Кемерово, 2002.
Составитель
Евгений Александрович Бессонов
ACCESS
Объекты доступа к данным
Методические указания к лабораторной работе для студентов специальности “Экономика и управление на предприятиях ” по курсу “Автоматизация экономических расчетов”
Редактор Е.Л.Наркевич НД № 06536 от 16.01.02.
Подписано в печать 21.11.01.
Формат 60х84 /16. Бумага офсетная. Отпечатано на ризографе. Уч.-изд.л. 1,3. Тираж 50 экз. Заказ ГУ Кузбасский государственный технический университет. 650026, Кемерово, ул. Весенняя, 28.
Типография ГУ Кузбасский государственный технический университет. 650099, Кемерово, ул. Д. Бедного, 4А