Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
Скачать 19.64 Mb.
|
Раздел (Selection) выберите раздел формы, с которым хотите работать. Почти всегда это Область данных. В диалоговом окне Последовательность перехода (Tab Order) можно задать нужную последовательность отдельно для каждого раздела формы. Если в форму включены Заголовок формы и Примечание формы, можно выбрать работу с одним из этих разделов или с Областью данных. Но очень редко попадается форма с элементами управления, поддерживающими переходы по клавише <Таb>, расположенными за пределами Области данных. 3. Если хотите позволить программе Access попытаться задать правильную последовательность переходов, щелкните мышью кнопку Авто (Auto Order). При щелчке мышью кнопки Авто Access устанавливает последовательность перехода на основе местоположения элементов управления. Порядок следования слева направо и затем сверху вниз. В большинстве случаев режим Авто задает верную последовательность перехода (или, по крайней мере, приближает вас к ней). 4 . Для переноса одного элемента управления в новое место в последовательности перехода перетащите его мышью. Этот шаг требует небольшой ловкости. На рис. 13.12 показано, как он выполняется. Рис. 13.12. Для изменения местоположения элемента управления в последовательности перехода начните со щелчка кнопкой мыши серого поля, находящегося слева от элемента управления. Выделится вся строка списка. Далее перетащите элемент в новую строку в списке. В данном примере поле Country перемещается вниз в последовательности перехода 5. Когда исправите последовательность перехода, щелкните мышью кнопку ОК. Подсказка Последовательность перехода действует в двух направлениях. Можно перейти к очередному элементу в последовательности, нажав клавишу <Таb>, и к предыдущему элементу, нажав комбинацию клавиш Контроль с помощью элементов управления Вы уже знаете, как создавать форму с чистого листа и добавлять все необходимые элементы управления. Но вы еще не воспользовались новой функциональной возможностью, позволяющей делать нечто особенное. Вы научились вставлять подписи, линии и прямоугольники. Но все эти оформительские украшения меркнут по сравнению с действительно полезными средствами, которые программа Access позволяет добавлять в ваши формы. Хотите помешать вводу ошибочных данных? Пожалуйста. Хотите добавить гиперссылки в стиле Web? Нет проблем. Список того, что вы можете сделать для расширения функциональных возможностей ваших форм, почти бесконечен. В следующих разделах описаны самые популярные способы контроля данных на форме с помощью элементов управления. Блокировка полей В БД почти все порции информации — объекты для изменения. Но это не означает, что следует всем предоставить свободный доступ ко всем полям. Предположим, что компания Boutique Fudge создает форму CurrentOrders (текущие заказы), которая позволит персоналу склада просматривать ожидающие обработки заказы клиентов, отсортированные по дате. Персонал склада должен просмотреть каждый заказ, упаковать и затем отправить его. Единственное изменение, которое она должны вносить, — обновление состояния заказа (обозначить дату его отправки) или вставить запись в журнал регистрации доставки. Другие подробности, такие как дата заказа, содержимое заказа и клиент, получающий заказ, должны быть закрыты. У сотрудников склада нет причин изменять эти данные. В подобных сценариях формы — мощный инструмент, поскольку они позволяют помешать изменению определенных полей. В этом случае случайно нажатая неподходящая клавиша не сможет стереть порцию корректной информации. У любого присоединенного элемента управления (элемента, отображающего поле вашей таблицы) есть два свойства, которые можно применять для контроля редактирования. Эти свойства можно изменять в Окне свойств в режиме Конструктор.
Подсказка Если вы хотите запретить любые варианты редактирования, рассмотрите возможность применения свойств формы Разрешить изменение (Allow Edits), Разрешить удаление (Allow Deletions) и Разрешить добавление (Allow Additions), описанных в табл. 12.2. Предупреждение ошибок с помощью условий на значения В главе 4 вы узнали, как предупреждать проникновение ошибок в ваши таблицы с помощью правил верификации или условий на значение, значений по умолчанию и масок ввода. Такая многоуровневая проверка — существенная часть проектирования БД. Но в некоторых ситуациях условия на значения не помогут, поскольку они применяются не всегда, а время от времени. Вы вряд ли захотите, чтобы продавцы в Boutique Fudge вводили новый заказ со старой датой. Ясно, что это ошибка — у нового заказа должна быть текущая дата. Для выявления и устранения этой проблемы умный разработчик, вроде вас, может использовать следующее условие на значение в поле OrderDate: <=Date ( ) Однако через несколько недель вы обнаруживаете, что отдел поставки продуктов не счел нужным ввести информацию о своих заказах вовремя. Для сохранения записей задним числом следует снабдить эти заказы датами их первоначального появления. Вам придется удалить хорошо продуманное условие на значение, прежде чем вы сможете ввести эти записи. Как выясняется, ситуации, подобные этой, в реальной жизни возникают часто. К счастью, существует способ обработки такого сценария без отказа от условия на значение. Прием заключается в помещении условия на значение в форму. В этом случае разные формы могут использовать различные условия на значение. Если вам нужны ничем неограниченные изменения, данные можно редактировать непосредственно в таблице на листе данных. Если вы планируете убрать условия на значение из ваших таблиц и внести их в формы, вам будет интересно узнать о следующих свойствах элементов управления, которые можно настраивать в Окне свойств.
Примечание М ожно задать значение по умолчанию для одного и того же поля на уровне таблицы и на уровне формы. Если вы сделали это, значение по умолчанию формы перекрывает значение, заданное в таблице. Выполнение вычислений в выражениях Выражение — это формула, обрабатывающая некоторую информацию, например числа, даты или текст, и отображающая конечный результат (рис. 13.13). Часто выражения в вычислениях используют значения полей. Раньше вы применяли выражения для обработки чисел в запросах (см. главу 7) и отчетах (см. главу 10), а теперь вы заставите их работать в формах. Рис. 13.13. В данной форме выражение = "You have " & [DueDate]-Date () & " days to finish" вычисляет число дней между текущей датой и датой окончания проекта и помещает его в законченное предложение. Вы увидите появление этой информации, как только введете дату окончания и перейдете в другое поле. (Это требование можно обойти и заставить поля обновляться во время ввода с помощью небольшого фрагмента VBA-кода, запускающего повторное вычисление.) Для создания выражения выполните следующие действия. 1. Добавьте на форму элемент управления Поле (из группы ленты Инструменты конструктора форм | Конструктор → Элементы управления). Следует использовать именно Поле, т. к. оно может отображать переменные значения, такие как выражения. Подпись может показывать только текстовые константы, поэтому она бесполезна. 2. В Окне свойств выберите вкладку Данные (Data). Поместите выражение в параметр Данные (Control Source). Помните о том, что выражения начинаются со знака равенства. Выражение =Price*l. 15 вычисляет цену товара с учетом налога, умножая значение в поле Price на 1.15. 3. Можно задать в свойстве Доступ (Enabled) значение Нет для усиления запрета на изменение этого значения. Когда создается элемент управления с применением выражения, программа Access не разрешает редактировать вычисляемое значение. Это все равно, что свойству Блокировка (Locked) присвоить значение Да. Но некоторые пользователи все равно могут делать попытки изменить эту величину. Если по-вашему такое развитие сценария может создавать проблемы, задайте в свойстве Доступ значение Нет, чтобы элемент управления отображался как недоступный и никто не мог перейти в него с помощью клавиши <Таb>. Эта установка также означает невозможность копирования значения в поле ввода. 4. При желании примените форматирование. Вы можете настроить шрифт и цвет с помощью группы ленты Инструменты конструктора форм | Конструктор →Шрифт (Form Design Tools | Design → Font). Для настройки отображения программой Access числовых значений перейдите в Режим макета и используйте группу ленты Работа с макетами форм | Формат → Форматирование (Form Layout Tools | Formatting → Formatting). Примечание Для удаления рамки вокруг поля ввода (так оно больше напоминает подпись) выделите его в Конструкторе, выберите на ленте кнопку Инструменты конструктора форм | Конструктор →Элементы управления → Тип линии (Form Design Tools | Design → Controls → Line Type) и укажите первый элемент списка (он пустой, что означает "отсутствует"). Компоновка с применением элемента управления Вкладка Один из невоспетых героев мира элементов управления — элемент Вкладка, позволяющий представить содержимое большого объема на ограниченном пространстве. Хитрость этого элемента управления кроется в способе размещения такого содержимого на отдельных страницах. В определенный момент времени можно видеть одну страницу, а выбирается она щелчком кнопкой мыши соответствующего заголовка вкладки (рис. 13.14). Элемент управления Вкладка не идеален. Его главный недостаток заключается в необходимости дополнительных щелчков кнопкой мыши для перехода с одной вкладки на другую. По этой причине не очень удобно пользоваться вкладками на формах, предназначенных для создания новых записей. В этом случае лучше упростить процесс создания записи и расположить все элементы управления на одной странице, так чтобы вы могли быстро заполнить их. Вкладки полезнее всего на формах, разработанных преимущественно для редактирования и просмотра данных. Если такие данные можно разделить на логические группы и если редактирование часто связано с корректировкой одной из групп, элемент управления Вкладка — удачный выбор. Для применения элемента управления Вкладка выполните следующие действия. 1. В группе ленты Инструменты конструктора форм | Конструктор →• Элементы управления щелкните кнопкой мыши пиктограмму Вкладка. Когда Вкладка появится на экране, вам, вероятно, захочется переместить ее или изменить ее размеры для наилучшего соответствия форме. 2. Добавьте все нужные страницы Вкладки. Любой новый элемент управления Вкладка сначала отображается с двумя страницами. Перейти со страницы на страницу можно щелчком кнопки мыши по соответствующему заголовку. Для создания новой страницы щелкните правой кнопкой мыши любую страницу (но не заголовок вкладки) и выберите Вставить вкладку (Add Page). Для удаления существующей страницы щелкните ее правой кнопкой мыши и выберите команду Удалить вкладку (Delete Page). Рис. 13.14. Имеет смысл поместить адресную информацию клиента на отдельную вкладку, поскольку все эти поля образуют группу логически связанных данных 3. Задайте подходящие имена вкладок. Имена, которые первоначально присваивает вкладкам программа Access, малоинформативны, например, Вкладка19 и Вкладка20. Для изменения заголовка или имени вкладки выделите страницу и измените параметр Подпись (Caption) в Окне свойств. У страницы, отображающей адресные поля клиента, мог бы быть заголовок "Address Information" (адресные данные). Для изменения порядка следования страниц щелкните правой кнопкой мыши элемент управления Вкладка и выберите команду Последовательность вкладок (Page Order). Программа Access откроет диалоговое окно Порядок страниц со списком вкладок. Для изменения местоположения вкладки выделите ее и щелкните мышью кнопку Вверх или Вниз. Примечание Если вы создаете больше страниц, чем может уместиться в вашем элементе управления Вкладка, программа Access добавляет странную полосу прокрутки в правый верхний угол элемента, которая позволяет переходить к нужным вкладкам. Для того чтобы избежать этого неудобства, измените размер элемента управления Вкладка, сделав его достаточно широким для отображения всех страниц или не применяйте длинные заголовки вкладок. 4. Поместите элементы управления на разные страницы. Вы можете перетащить мышью элементы управления с остальной части формы на вкладку или добавить новые с помощью ленты. В любом случае не забудьте выделить вкладку, которая нужна в первую очередь, и затем добавьте необходимые элементы управления. Даже в Конструкторе одновременно отображается только одна страница элемента управления Вкладка. Подсказка Если элементы управления включены в макет, их невозможно переместить на вкладку. Вместо этого выделите их, щелкните правой кнопкой мыши выделение и выберите команду Вырезать. Затем щелкните правой кнопкой мыши на странице вкладки, там где хотите разместить элементы, и выберите команду Вставить. Переходы по ссылкам Ссылки — менее многофункциональные, чем кнопки. В то время как кнопки могут выполнить почти любое действие, ссылки ограничиваются выполнением только двух задач:
1. В группе ленты Инструменты конструктора форм | Конструктор -» Элементы управления щелкните кнопкой мыши пиктограмму Вставить гиперссылку. На экране появится диалоговое окно Вставка гиперссылки (Insert Hyperlink) (рис. 13.15) при условии, что у вас включены мастера создания элементов управления (см. разд. "Вставка элементов управления в форму" ранее в этой главе). С помощью этого окна вы сможете задать текст для ссылки и пункт назначения, куда ссылка перенесет пользователей, когда они щелкнут ее кнопкой мыши. 2. В левой части окна щелкните кнопкой мыши вариант файлом, веб-страницей (Existing File or Web Page). Можно также использовать вариант объектом в базе данных (Object in This Database) для создания ссылки, открывающей другой объект БД, например, форму. Но для этой задачи больше подходят кнопки. Вариант электронной почтой (E-mail Address) выбирается для создания ссылки на адрес электронной почты. При щелчке кнопкой мыши такой ссылки запускается ваша текущая программа работы с электронной почтой и создается новое сообщение с предоставленным вами начальным текстом. 3. В поле ввода Текст (Text to display) введите любой текст, который будет отображать ссылка. Обычно такой текст включает адрес реального Web-сайта (например, http://www.mycompany.com) или информационное сообщение (например, "Щелкните здесь для перехода на Web-сайт моей компании"). Рис. 13.15. Кто-то собрался создать новую гиперссылку. Она будет выводиться с текстом "Щелкните здесь для перехода на Web-сайт компании" (который вы, конечно, можете редактировать, чтобы сообщить то, что хотите) 4. Если хотите задать пользовательскую всплывающую подсказку для данной гиперссылки, щелкните мышью кнопку Подсказка (ScreenTip). Введите свое сообщение и щелкните мышью кнопку ОК. Как вы уже наверняка знаете, подсказка — маленькое окно желтого цвета, содержащее сообщение и открывающееся над гиперссылкой, когда указатель вашей мыши перемещается поверх ссылки. Если не задавать собственную подсказку, программа Access выведет полный путь или URL (Web-адрес). 5. Если вы хотите добавить ссылку на документ, найдите соответствующий файл с помощью просмотра и выделите его. Если вы хотите вставить ссылку на Web-страницу,введите URL в поле Адрес (Address). Если добавляется ссылка на документ, Access задает в поле Адрес полный путь к файлу, например, C:\MyDocuments\Resume.doc. Можно ввести этот путь самостоятельно, а если ваша сеть поддерживает, то и путь UNC (Universal Naming Convention, соглашение об универсальных именах), который ссылается на файл, хранящийся на другом компьютере с помощью указания имени компьютера, например, \\SalesComputer\Documents\CompanyPolicy.doc. Примечание Вы можете ссылаться на файлы на вашем компьютере или на сетевых дисках. Только помните о том, что при щелчке ссылки кнопкой мыши Access ищет именно в том месте, которое вы задали. Если файл перенесен в другое место или вы открыли БД на другом компьютере, программа Access не сможет найти файл, указанный в ссылке. 6. Щелкните мышью кнопку ОК для вставки гиперссылки. На форме появится новая гиперссылка. Затем можно переместить ее в любое место формы. Для применения гиперссылки просто щелкните ее кнопкой мыши. Вы увидите, что как только вы проведете указателем поверх гиперссылки, он изменит свой вид на руку с поднятым указательным пальцем. Переходы с помощью списков В формах программы Access существуют два вида элементов управления со списками: Список (List box) и Поле со списком (Combo box). Разница в том, что Список отображает несколько элементов одновременно (в зависимости от величины списка, заданной вами), Поле со списком выводит одно значение — для того чтобы увидеть список, необходимо щелкнуть мышью направленную вниз стрелку. Программа Access предоставляет два варианта применения элементов управления со списками: ■ их можно использовать для редактирования значения поля. Access автоматически создает Поле со списком, если для поля определена подстановка (как описано в разд. "Поиск в связанных таблицах" главы 5). Это Поле со списком действует так же, как список подстановки на листе данных;
Применение списков для перехода — по-настоящему мощное средство программы Access. Если вы часто ищите запись с помощью одного и того же условия отбора (например, если вы ищите товары по названию или сотрудников по номеру социального обеспечения), этот метод гораздо эффективнее кнопок перехода или фильтрации записей. Далее описаны действия, необходимые для создания списка, обеспечивающего переходы между записями. 1. Убедитесь в том, что средство Использовать мастера для элементов управления (Control Wizard) включено. Если вы не уверены в этом, проверьте, подсвечена ли кнопка ленты Инструменты конструктора форм ) Конструктор →Элементы управления → Использовать мастера (Form Design Tools | Design → Controls → Use Control Wizards). 2. В группе ленты Инструменты конструктора форм | Конструктор → Элементы управления щелкните кнопкой мыши пиктограмму Список или Поле со списком. Оба эти элемента управления действуют одинаково, когда применяются для перехода между записями. Единственное отличие — Список требует больше места. Если вы решили использовать этот элемент, поместите его в боковую часть формы. Пользователи чаще применяют элемент управления Поле со списком (рис. 13.16). 3. Нарисуйте элемент управления на форме. Как только вы закончите, на экране появится мастер, чтобы помочь вам настроить список (рис. 13.17). Этот процесс аналогичен мастеру подстановки, который применялся для установки связи таблиц. 4. Выберите переключатель Поиск записи в форме и щелкните мышью кнопку Далее. Вы узнаете о других вариантах в следующем разделе. Рис. 13.16. На этой форме список позволяет перейти к нужному товару одним щелчком мыши. Обратите внимание на то, что этот список не заменяет собой элемент управления Поле для ProductName. Список может применяться для поиска нужной записи, а поле — для изменения названия товара. Конечно, если в данной форме названия товаров никогда не меняются, нет необходимости включать в нее поле ProductName Рис. 13.17. Когда создается поле со списком (или список), мастер создания списка позволяет вам выбрать, применять его для редактирования или для переходов 5. Выберите доле, которое хотите использовать для просмотра, и щелкните мышью кнопку Далее. В примере рис. 13.16 используется поле ProductName. Технически список всегда функционирует одинаково — он находит элементы на основе значения уникального первичного ключа (см. разд. "Первичный ключ "главы 2). У создаваемого вами списка на самом деле два столбца. В первом хранятся значения первичного ключа, а во втором отображаются значения выбранного вами поля. Но на форме вы не увидите первичного ключа, потому что он скрыт. Примечание Этот метод не будет действовать, как следует, если в выбранном поле разрешены дублирующиеся значения. Если создается список, использующий поле LastName, вы можете обнаружить несколько значений MacDonald. В этом случае рассмотрите возможность добавления нескольких полей в список просмотра (например, поле LastName и поле FirstName). 6. Оставьте установленным флажок Скрыть ключевой столбец (рекомендуется) и щелкните мышью кнопку Далее для продолжения. Если вы не планируете отображать столбец с первичным ключом, — обычно это так — просто щелкните мышью кнопку Далее, чтобы проскочить это окно. 7. Введите название списка. Оно появится в подписи, расположенной рядом с элементом управления Список. Можно использовать что-то вроде "Щелкните кнопкой мыши товар, который хотите просмотреть". Позже подпись можно будет переместить или удалить. 8. Щелкните мышью кнопку Готово для создания списка. Теперь испытайте список. Щелкните правой кнопкой мыши заголовок вкладки и выберите Режим формы для перехода к форме. Затем выберите элемент из списка для перехода непосредственно к соответствующей записи. Примечание У переходов на базе списка есть одна особенность. Если изменить значение, которое выводится в списке, программа Access не обновит список до тех пор, пока вы не перейдете к другой записи. В предыдущем примере эта особенность приведет к тому, что если вы изменяете название товара, его старое название останется в списке до тех пор, пока вы не пойдете дальше. Выполнение действий с помощью кнопок Последний элемент управления, который будет рассматриваться, обладает максимальными функциональными возможностями. Кнопки позволяют выполнить почти любое действие, например, открыть новую форму, напечатать отчет или разделаться с прошлогодними налогами. (Конечно, одни задачи труднее других, но если проявить волю и разобраться с кодом на Visual Basic, возможно почти все.) Когда на форму вставляется элемент управления Кнопка, Access запускает полезный мастер создания кнопки, в котором можно выбрать нужное действие из списка заранее подготовленных вариантов. Затем мастер поможет создать макрос (см. главу 15), который сделает все, что потребуется. Варианты в мастере Создание кнопок предоставляют подробное меню возможностей. Некоторые ярые поклонники программы Access считают, что могут сделать все, что захотят, используя только кнопки и мастер. Другим иногда требуется сделать нечто более оригинальное, в этом случае они вынуждены создавать собственные макросы или писать пользовательский код (задачи, которыми вы будете заниматься в части V). Следующие действия проведут вас через процесс создания кнопки с помощью мастера.
Когда вы закончите, запустится мастер Создание кнопки и сразу включится в работу. Прежде всего, он попросит выбрать действие, которое будет выполняться (рис. 13.18). Рис. 13.18. Вы можете заставить форму выполнять шесть категорий действий. После выбора категории (в списке слева) вы увидите список действий в выбранной категории (в списке справа) 3. Выберите действие, которое хотите выполнить. Большинство действий интуитивно понятно. Далее приведены некоторые самые интересные.
Примечание Когда используется действие Открыть форму, у вас есть возможность применить фильтр на базе текущей записи. К несчастью, это средство неустойчиво работает. В главе 14 будет рассмотрен более подробный пример, использующий фильтр для отображения связанных записей.
4. Щелкните мышью кнопку Далее. Следующий шаг зависит от выбранного действия. Некоторым действиям требуется дополнительная информация. Если вы выбрали отображение формы или печать отчета, программа Access попросит выбрать форму или отчет, которые хотите использовать. После того как дополнительная информация введена, Access попросит ввести текст кнопки и выбрать изображение (рис. 13.19). Рис. 13.19. Использовать рисунки соблазнительно, но те, что предлагает Access, определенно старомодные. Большинство фанатов программы Access выбирают кнопки без рисунков. Если вы решили включить рисунок, установите флажок Показать все рисунки для того, чтобы увидеть все, что может предложить Access (даже рисунки, которые не подходят для текущего действия), или воспользуйтесь кнопкой Обзор для вставки собственного рисунка Примечание Любой точечный рисунок (BMP-файл) подходит в качестве рисунка для кнопки, если он достаточно мал, чтобы уместиться на ней. Годятся также пиктограммы, файлы JPEG и GIF. 5. Введите какой-либо текст и выберите рисунок. Затем щелкните мышью кнопку Далее. Эти данные потом можно изменить, корректируя свойства Подпись (Caption) и Рисунок (Picture) (которые выводятся на вкладке Макет). 6. Задайте имя кнопки. Имя выводится в списке Окна свойств. Чем лучше выбрано имя, тем легче найти кнопку. А если вы пишете код, работающий с кнопками (см. главу 16), чем лучше имя, тем легче другим читать и понимать ваш код. 7. Щелкните мышью кнопку Готово. Для испытания кнопки перейдите в Режим формы и щелкните кнопку мышью. Формы и связанные таблицы Как вы узнали в главе 5, немногие таблицы по-настоящему независимы. Большинство из них связано с другими таблицами паутиной отношений. Формы могут воспользоваться этими отношениями для отображения связанной информации. Можно применить одну форму для отображения (и редактирования) данных о клиентах и их заказах. Или можно просматривать товары и их категории. Такой свободы нет на листе данных. Примечание Профессиональные разработчики Access применяют запросы с объединением (см. разд. "Запросы и связанные таблицы" главы 6) для отображения информации из нескольких таблиц. Но в запросе с операцией объединения нельзя редактировать связанные данные. В хорошо спроектированной форме такого ограничения нет — можно корректировать данные как в родительской, так и в дочерней записях. Связи таблиц и простые формы Программа Access достаточно сообразительна, чтобы заметить связи во время создания новой формы для родительской таблицы. Для того чтобы понять, что это значит на практике, выделите таблицу-родитель для другой таблицы. Можно воспользоваться таблицей ProductCategories в БД Boutique Fudge, поскольку каждая категория служит родительской записью, связанной с одной или несколькими записями-потомками в таблице Products. (Можно также использовать таблицу Customers, поскольку клиенты связаны с заказами, или таблицу Orders, т. к. заказы связаны с конкретными компонентами заказа. Для практической проверки примените БД Boutique Fudge для данной главы, содержащую загружаемые из Интернета данные.) На рис. 13.20 показано, что произойдет, если выделить таблицу ProductCategories, а затем выбрать на ленте Создание → Формы → Форма. Программа Access создает форму, которая выводит ожидаемые записи (категории) и связанные записи из таблицы-потомка (в данном случае товары). Примечание Не выбирайте для создания Разделенную форму или форму типа Несколько элементов, Access игнорирует связи, когда создаются формы этих типов. Рис. 13.20. Эта форма позволяет просматривать разные категории товаров. При каждом переходе к новой категории мини-лист данных на форме отображает связанные записи о товарах. С помощью такой формы можно редактировать данные о товарах и о категории товаров Если таблица — родитель для нескольких потомков, программа Access отображает записи только из одной таблицы. Она выбирает первую найденную связь. Если это не та связь, которая вам нужна, не беспокойтесь — это легко исправить, если знать, как работает элемент управления Подчиненная форма. Элемент управления Подчиненная форма Программа выводит связанные записи с помощью элемента управления Подчиненная форма. Этот элемент можно добавить на любую форму для отображения связанных записей. Он доступен в группе ленты Инструменты конструктора форм | Конструктор → Элементы управления наряду с другими элементами управления. Если добавить его вручную, Access попросит выбрать таблицу, которую следует отображать. То, что отображает подчиненная форма, определяется тремя свойствами. Первое свойство Объект-источник (Source Object) задает объект БД, имеющий связанные записи. Можно выбрать существующие таблицу, запрос или форму. Следующие два свойства — Основные поля (Link Master Fields) и Подчиненные поля (Link Child Fields) — позволяют определить способ связи двух таблиц. Основное поле — это поле в форме, а подчиненное поле — это поле в объекте-источнике. В примере с категориями товаров основное поле — ID (в таблице ProductCategories) и подчиненное поле — поле ProductID (в таблице Products). После того как эта связь определена, программа Access знает, как фильтровать подчиненную форму. Она просматривает основное поле и отображает только те записи, у которых то же значение в подчиненном поле. На рис. 13.20 Access отображает товары текущей категории. Обычно основное поле относится к родительской таблице, а подчиненное поле — к таблице-потомку. Но это отношение можно изменить на обратное. Можно создать форму с товарами, которая включает подчиненную форму, отображающую категорию, соответствующую каждому товару. Если применяется подобный подход, подчиненная форма включает только одну запись (т. к. только один родитель связан с каждой записью). Теперь разобравшись с принципами работы элемента управления Подчиненная форма, можно вставлять ее в формы с одержимостью. Ничто не мешает вам добавить несколько подчиненных форм для одновременного отображения целой коллекции связанных данных. Если создается форма для таблицы Customers, можно вывести на экран две подчиненные формы — одну для заказов, сделанных клиентом, а другую для платежей. Вам просто нужны два элемента управления Подчиненная форма с разными источниками данных. Подсказка Если в форму включена подчиненная форма, подумайте об использовании средств привязки, описанных в разд. "Привязка: автоматическое изменение размеров элементов управления" ранее в этой главе, так чтобы подчиненная форма увеличивалась за счет доступного свободного пространства, появляющегося при изменении размера формы. Создание настроенных подчиненных форм Если в свойстве Объект-источник задана таблица или запрос, программа Access всегда отображает связанные записи на мини-листе данных. Если вы намерены настраивать каждый новый фрагмент формы, возможно, вас не устроит такое отображение. Интересно, что программа Access позволяет управлять способом отображения связанных записей, если потрудиться немного больше. Хитрость заключается в задании в свойстве Объект-источник формы, которую хотите отобразить в элементе управления Подчиненная форма. Форма появится в режиме вывода по умолчанию в соответствии со значением в свойстве Режим по умолчанию. Можно выводить связанные записи в табличном макете или макете в столбец. На рис. 13.21 показан пример. Возможно, для получения эффекта, которого вы стараетесь добиться, уже есть подходящая форма, лежащая под рукой и готовая к применению. Если проектируется форма для таблицы ProductCategories, можно использовать форму, созданную для таблицы Products в элементе управления Подчиненная форма. Но часто хочется иметь отдельную форму, чтобы настраивать ее так, как заблагорассудится. В примере с таблицей товаров может появиться желание в подчиненной форме отображать товары совершенно иначе, чем в их собственной специализированной форме. Помимо всего прочего, когда применяется элемент управления Подчиненная форма, у вас гораздо меньше места на ней, поэтому можно выбрать более компактный формат и вовсе пропустить заголовок формы. Рис.13.21. Благодаря магии подчиненных форм в этом окне на самом деле одновременно отображаются две формы: ProductCategories_WithSubform и ProductslnCategory_Subform. В данном примере подчиненная форма использует макет Ленточная форма и, таким образом, отображает список всех отобранных товаров. Для отображения остальных товаров необходимо использовать второй набор кнопок перехода (обведены) Подсказка Если вы решили создать специализированную форму, использующую элемент управления Подчиненная форма, отразите ее роль в названии. Название ProductslnCategory Subform (Подчиненная форма для товаров из данной категории) подразумевает форму, спроектированную для применения в качестве подчиненной формы. Предпринимайте разные попытки, поскольку не существует способа разместить все на небольшом пространстве подчиненной формы, включенной в форму. В этом случае у вас есть две возможности: попытаться создать более компактную подчиненную форму или использовать две отдельные формы. В главе 14 показано, как применять переходы и фильтр для отображения связанных записей в отдельной форме. |