КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Примечание. См. более подробную информацию о мастере создания списка в раздСм. более подробную информацию о мастере создания списка в разд. "Переходы с помощью списков" главы 13. Только помните о том, что в конце работы мастера нужно выбрать вариант Запомнить значение.Ваш список применяется для переходов, а не для редактирования записей.
■ Извлечение имен из пользовательской таблицы, созданной вами. Создайте новую таблицу и заполните ее именами форм, которые хотите включить в список. Затем в процессе создания Поля со спискомвыберите переключатель Объект "поле со списком" будет использовать значения из таблицы или запросаи задайте вашу пользовательскую таблицу. Этот метод концептуально подобен методу функционирования кнопочной формы, создаваемой программой Access. ■ Извлечение имен из системной таблицы. В качестве действительно эффективного средства можно получить полный список форм прямо из вашей БД без дополнительных усилий. Суть в использовании одной из скрытых системных таблиц. Системные таблицы — это таблицы, которые программа Access применяет для отслеживания объектов БД. У каждой БД, созданной Access, есть такие таблицы, скрытые от глаз. Первые два варианта просты. Третий — более впечатляющий, но требует немного больше работы. Обычно системные таблицы скрыты от глаз. Отобразить их можно (рис. 14.16), установив флажок Показывать системные объектыв окне Параметры переходов.Надолго оставлять их видимыми не стоит, т. к. любое изменение в них может повредить вашу БД и озадачить программу Access. Системные таблицы можно использовать и не выводя на экран. Самая интересная системная таблица — MsysObjects,в которой перечислены все объекты БД. Можно получить список всех форм вашей БД, создав запрос к этой таблице с помощью SQL-команды (см. в разд. "Режим SQL" главы 6 информацию об использовании в запросах языка SQL). Поле Name содержит имена объектов БД, поле Туре— числовой код, обозначающий тип объекта. В табл. 14.1 приведены типы, которые могут вас заинтересовать.
Таблица 14.1. Коды полезных типов
Рис. 14.16.В области переходов отображается группа системных таблиц, которые обычно скрыты. Их можно открыть и просмотреть, но трудно понять смысл содержащихся в них данных (большей частью числовых) На основе этих данных можно получить список форм — извлечь поле Name,а затем отобрать записи со значением типа -32 768. Легче всего реализовать описанную логику в элементе управления Список,добавив список на форму и пропустив мастер создания списка (нажмите клавишу <Esc>, когда мастер запустится). Затем элемент управления можно настроить с помощью Окна свойств.На вкладке Данные найдите свойство Источник строки введите следующую SQL-команду, которая выполнит нужный запрос: SELECT Name FROM MSysObjects WHERE MSysObjects.Type=-327 68 Теперь у вас есть список, отображающий все формы вашей БД. Можно заменить число -32 764 числом -32 768 и получить все отчеты. На рис. 14.17 показан результат. Итак, вы увидели только половину нужного решения. Известно как включить список в подходящий элемент управления, но при использовании этого элемента пока ничего не произойдет. Вам нужен реальный способ перехода к выбранной в списке форме или отчету. Оказывается, это решение немного сложнее примеров, виденных вами до сих пор. Для того чтобы заставить его работать, придется изменить макрос. (Макрос — это перечень нескольких инструкций, хранящийся как объект БД, который можно использовать в любое время.) Рис. 14.17. В данной форме отображен список всех доступных отчетов
Как вы узнали из главы 13, в процессе создания кнопки Мастер кнопок задает несколько вопросов и затем формирует нужный макрос. Но мастер создания кнопок катастрофически ограничен функционально. К примеру, он может создать макрос, выполняющий переход к конкретной форме, и не способен создать макрос перехода к любой форме. Но вы можете создать простой макрос с помощью мастера, а затем, приложив немного дополнительных усилий, исправить его в соответствии с собственными нуждами. Вот как это делается. 1. Поместите кнопку на вашу форму. Расположите ее рядом с элементом управления Поле со списком.Запустится Мастер кнопок. 2. Выберите категорию Работа с отчетамии действие Открыть отчет,а затем щелкните мышью кнопку Далее. Если вы отображаете список форм, выберите категорию Работа с формамии действие Открыть форму. 3. Выберите любой отчет или форму и щелкните мышью кнопку Далее. 4. Завершите мастер. Убедитесь, что у кнопки подходящий заголовок, например "Выполнить", "Открыть форму" или "Вывести отчет". Когда мастер завершил работу, самое время внимательнее взглянуть на кнопку в Окне свойств. 5. ВОкне свойстввыделите вновь созданную кнопку и перейдите на вкладку События События — это действия или явления, которые запускают ваш макрос. Например, у всех кнопок есть событие Нажатие кнопки(OnClick), которое возникает, когда вы щелкаете кнопку мышью. 6. Найдите событие Нажатие кнопки(OnClick) и щелкните мышью в поле свойства, в котором выводится строка [Внедренный макрос]([Embedded Macro]). В углу поля появляется кнопка с многоточием (...). 7. Щелкните мышью многоточие для редактирования макроса. На экран выводится окно редактирования макроса (рис. 14.18). В нижней части окна находится раздел Аргументы макрокоманды,позволяющий корректировать работу макроса. Рис. 14.18.Вы узнаете об этом окне гораздо больше в главе 15. Сейчас вам нужно знать лишь то, что у данного макроса единственная макрокоманда (представленная одной строкой в табличной сетке). Эта макрокоманда открывает отчет (на что указывает значение ОткрытьОтчетв столбце Макрокоманда)
8. В разделе Аргументы макрокомандынайдите свойство Имя отчета(или Имя формы). Замените его значение выражением =MyList.Value. Это выражение находит поле со списком и извлекает выделенное в данный момент значение. Предполагается, что поле со списком названо My List.Если нет, измените выражение соответствующим образом. (Если вы не помните имени вашего поля со списком, выделите элемент щелчком кнопки мыши и посмотрите, какое имя выводится в раскрывающемся списке в верхней части Окна свойств.) 9. Закройте окно макроса и ответьте Да на предложение сохранить изменения. 10. Перейдите в Режим формыи проверьте магические свойства вашего нового списка. У вас появится возможность выделить форму в списке и затем щелкнуть мышью кнопку для открытия выбранной формы.
|