ТЕМА : иерархические списки
СРОК СДАЧИ : 14 апреля 2003 г.
ЦЕЛЬ РАБОТЫ : Приобретение навыков создания иерархических списков.
ТЕОРЕТИЧЕСКИЕ ЗНАНИЯ : Создание иерархических списков. Обновление данных. Выполнение исполняемых запросов. Отключение сообщений
Для просмотра и работы с большим объёмом данных их необходимо фильтровать и выводить на экран данные, отвечающие одному или нескольким критериям отбора.
Для иллюстрации этого приёма рассмотрим форму Состав, которая позволяет формировать состав группы. При этом выполняются следующие правила:
Ø группы существуют только в течении одного учебного года;
Ø студент может числиться только в одной группе специальности, на которую он поступил.
Форма Состав содержит пять зависимых друг от друга списков:
Ø поле со списком Учебный год позволяет выбрать любой учебный год, введённый в базу данных;
Ø поле со списком Специальность позволяет выбрать любую специальность, введённую в базу данных;
Ø поле со списком Группа позволяет выбрать любую группу, существующую на выбранной специальность в выбранном учебном году. Содержимое списка зависит от учебного года и специальности;
Ø список Студенты специальности отображает студентов, поступивших на выбранную специальность не ранее выбранного учебного года и не числящихся ни в одной группе в выбранном учебном году. Содержимое списка зависит от учебного года и специальности;
Ø список Студенты группы отображает студентов, числящихся в выбранной группе. Содержимое списка зависит от учебного года, специальности и группы;
Все списки основаны на запросах, в которых в качестве условий отбора указаны значения соответствующих полей в форме.
При открытии формы данные корректно отображаются, но при изменении значений управляющих элементов управления Учебный год, Специальность и Группа необходимо привести содержимое списков в соответствии со значениями управляющих элементов управления. Для этого можно вызвать метод Require (обновление) элемента управления, синтаксис которого имеет вид:
ИмяФормы.ИмяЭлементаУправления.Require
Например, фрагмент кода
Me.КодГруппы.Require
осуществляет обновление элемента управления КодГруппы в текущей форме.
Метод Require (обновление) элемента управления выполняет пересчёт источника данных (запроса или таблицы) и используется при изменении условия отбора или данных в таблице.
Кроме того, для удобства работы выполняется считывание значение первой записи из запроса, на котором основан список, и её значение передаётся в элемент управления. Считать значение из таблицы или запроса можно с помощью функции DLookUp, синтаксис которой имеет вид:
DLookUp ( ИмяПоля , Источник [ , УсловиеОтбора ] )
где, ИмяПоля – обязательный параметр. Строковое выражение – имя поля в таблице или запросе;
Источник – обязательный параметр. Строковое выражение – имя таблицы или запроса;
УсловиеОтбора – необязательный параметр. Строковое выражение – условие отбора.
Функция возвращает значение указанного поля из указанной таблицы или запроса находящееся в первой записи, отвечающей условию отбора. Если источник не содержит записей – возвращает Null.
Форма Состав содержит пять списков, предназначенных для отображения данных, но эти списки не позволяют прямо изменять данные в таблицах. Изменение состава группы осуществляется путём добавления и удаления записей из таблицы Состав с помощью запросов на удаление (СоставУдаление, СоставУдалениеВсех) и добавление (СоставДобавление, СоставДобавлениеВсех). Эти запросы выполняются при нажатии соответствующих кнопок.
Запустить исполняемый запрос на удаление или добавление, также как и запросы на обновление и создание таблицы, можно двумя способами.
С помощью кнопки Вид откройте запрос в режиме SQL, скопируйте строку инструкции SQL и вставьте её в качестве параметра макрокоманды RunSQL. Например:
DoCmd.RunSQL “DELETE Состав.КодГруппы FROM Состав WHERE (((Состав.КодГруппы)=1));”
Другой способ выполнения исполняемого запроса заключается в вызове макрокоманды OpenQuery, у которой в качестве параметра используется строка с именем запроса. Например:
DoCmd.OpenQuery "СоставУдалениеВсех"
Перед выполнением исполняемого запроса среда Access выводит на экран окно сообщений, в котором требует от пользователя подтверждения выполнения операции.
В некоторых случаях подтверждение не требуется. Для отключения запросов среды Access нужно воспользоваться макрокомандой SetWarnings, которая имеет только один логический параметр. Если параметр равен False – сообщения отключаются, True – отображаются на экране. Следует отметить, что навсегда отключать сообщения нецелесообразно. Поэтому после выполнения запроса режим вывода на экран сообщений Access опять включают. Например:
DoCmd.SetWarnings False
DoCmd.OpenQuery "СоставДобавление"
DoCmd.SetWarnings True
Иерархические запросы будут использованы в нескольких формах в качестве источника строк для полей со списком, которые позволяют пользователю выбрать учебный год, специальность и группу. При этом список групп, будет содержать только группы, которые существуют в выбранном учебном году на выбранной специальности. Подобная организация интерфейса значительно облегчает работу пользователя, и предохраняет его от ошибок при вводе данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.