На данном примере мы
рассмотрим общий механизм работы и создания форм
с починенными формами. Вспомним связь, которую мы
установили в схеме данных, между таблицами
"Валюты" и "КурсыВалют".
Нам надо сделать форму, в которой при выборе
определенной валюты, мы видели и могли
редактировать только ее курсы валют.
Заходим в конструктор новой формы и вставляем
элемент "поле со списком" из "панели
элементов" в форму:
Источник данных формы у нас остается
пустой и соответственно свойство "Данные"
поля со списком будет не определен. Но при этом
для свойства формы "Источник строк"
мы сделаем запрос из таблицы "Валюты", что бы
в этом поле светился список всех валют, и мы могли
выбирать одну из них.
Нажимаем на кнопку построителя запросов для
источника строк поля и делаем запрос. С
построением простейших запросов мы уже
сталкивались при использовании вкладки Подстановка
в таблицах, поэтому трудностей быть не должно. На
рисунке выделены стрелочками основные моменты в
свойствах поля со списком Валют.
После того, как это все сделано, можно открыть
форму в рабочем режиме и посмотреть, как в списке
мы увидим наши валюты. Пока сохраним и закроем
нашу форму "КурсыВалют".
Создаем новую форму, которая будет являться
подчиненной. Она делается по аналогии со
справочником валют, только ее свойство "режим
по умолчанию" будет "Таблица".
Называем ее "КурсыВалют_" и сохраняем. Я в
свое время не знал как сделать мельче шрифт в
форме, которая открывается в режиме таблицы, а
ларчик просто открывается - смотри рисунок.
На следующем этапе, нам необходимо сделать ее
подчиненной для основной формы
"КурсыВалют".
Для этого откроем рядом окно базы данных и
основной формы в режиме конструктора и перетянем
мышкой нашу подчиненную форму на главную.
Но это еще не все, необходимо верно задать
свойства созданного элемента "Подчиненная
форма/отчет". Самое главное в свойствах
этого элемента задать значения "Основные
поля" и "Подчиненные поля" и
для этого напротив этих свойств есть кнопочки
для вызова построителя связи, но в нашем случае
он выдаст сообщение, что мол невозможно создать
связь между свободными формами. И здесь есть
хитрость, до которой я совершенно недавно дошел.
Она заключается в том, что на практике Access сам
себе противоречит, говоря что невозможно создать
связь. Возможно, только не прибегая к услугам
построителя связи. Ручками пишем имена поля
основной формы и поля таблицы подчиненной формы,
по которым происходит связь и все прекрасно
работает !
Вешаем пару кнопок на форму, которые легко
создаются мастером и полный порядок.
Единственная мелочь только осталась, которая
заключается в следующем: когда у нас открыта наша
форма редактирования курсов валют и из нее по
кнопке запускаем справочник валют, в котором
добавляем новую валюту, то возвращаясь в форму
курсов валют видим, что добавленной валюты НЕТ в
списке?!
....
С полной версией статьи можно ознакомиться здесь, там же можно закачать пример
базы.