Читайте также:
|
|
В этом разделе приведены некоторые типичные примеры, иллюстрирующие отображение в форме данных в соответствии со значениями некоторых ее элементов. Вообще говоря, подобные приемы можно применить для синхронизации данных как в простых, так и в составных формах, содержащих подчиненные формы. Примеры подобраны, исходя из наиболее часто встречающихся вопросов у наших читателей. Мы надеемся, что изучение этого раздела, а также применение комбинаций описанных приемов, помогут читателям решить основные задачи при проектировании интерактивных форм.
Переход на определенную запись в форме
Типичной задачей является организация более удобного чем последовательный перебор перехода по записям в форме, задавая значения каких-то полей записи, для ее поиска по ним. Например, в форме с информацией для большого количества сотрудников хотелось бы быстро перейти к карточке сотрудника с известной фамилией. Это можно сделать с помощью специального списка для выбора фамилии.
В разд. "Создание элементов управления с помощью панели элементов" гл. 5 мы упомянули о том, что при создании списка/поля со списком с помощью Мастера в форме, привязанной к источнику данных, Access предлагает сделать его средством перехода к нужной записи в форме. Рассмотрим пример создания такого списка:
Форма готова. Откройте ее в режиме Формы и убедитесь, что при выборе желаемых фамилии и имени в созданном поле со списком осуществляется переход к информации об этом сотруднике. Такое поле со списком удобно и тем, что значение в нем можно не только выбрать, но и просто ввести первые буквы фамилии — необходимый элемент будет выбран автоматически. Останется нажать клавишу <Enter>, чтобы отобразить информацию о выбранном сотруднике.
Действие созданного поля со списком обеспечивается процедурой обработки события После обновления (After Update), сгенерированной мастером (см. также разд. "Создание процедур обработки событий"гл. 13).
Динамическая фильтрация данных
Предположим, у нас есть форма, содержащая подчиненную форму, в которой отображается много записей, и вы хотели бы интерактивно задать в главной форме какое-нибудь условие для отбора интересующих записей в подчиненной форме, чтобы упростить их визуальный анализ.
Это несложно сделать с помощью применения фильтра для источника данных формы (в данном случае — подчиненной). Фильтр можно применить двумя способами:
Первый способ применения фильтра в форме во многом аналогичен подобным действиям в режиме Таблицы, которые были рассмотрены в разд. "Фильтрация данных" гл. 2. Здесь мы рассмотрим второй способ.
В этом случае применяются свойства формы Фильтр (Filter) и Фильтр включен (Filter On). Свойство Фильтр (Filter) содержит строковое значение — предложение WHERE на языке SQL (без ключевого слова WHERE). Свойство Фильтр включен (Filter On) определяет, применен ли фильтр, указанный в свойстве Фильтр (Filter), к форме. В отличие от свойства Фильтр включен (Filter On), свойство Фильтр (Filter) можно задать и в режиме Конструктора, в окне свойств формы, чтобы фильтр применился в момент загрузки формы. Но нам нужно изменять фильтр динамически — в процессе работы с формой в режиме Формы. Мы реализуем это с помощью процедуры VBA. : .
И хоть данная глава не предназначена для описания программирования на VBA, мы приведем пример соответствующей процедуры VBA, поскольку он обеспечивает несложное решение довольно типичной задачи.
Рассмотрим решение этой проблемы на примере формы "Типы" (Categories), содержащей подчиненную форму "Список товаров" (Product List). Организуем отбор товаров в подчиненной форме в зависимости от наличия их поставок:
Таблица 9.1. Свойства фильтрующего элемента
Свойство | Значение | ||
Тип источника строк (Row Source Type) | Список значений (Value List) | ||
Количество столбцов (Column Count) | |||
Ширина столбцов (Column Widths) | Ост; 2, 5cm | ||
Данные (ControlSource) | оставьте поле свойства пустым | ||
Имя (Name) | Отбор | ||
Присоединенный столбец (Bound Column) | |||
Источник строк (Row Source) | 0; "Поставки выполняются";— 1; "Поставки прекращены"; 2; "Все товары" |
Дата добавления: 2015-07-24; просмотров: 76 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Добавление подчиненной формы в главную форму | | | Замечание |