Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Написание процедуры с простейшим программным кодомСодержание книги
Поиск на нашем сайте
Внутри всех модулей (за исключением пустых) находится одна или несколько процедур на языке Visual Basic. Процедура — это именованный блок кода, выполняющий определенную задачу. В языке VB процедуры начинаются словом Sub, за которым следует имя процедуры. Завершаются процедуры оператором End Sub. Далее приведен пример процедуры, которая названа довольно неоригинально MyCodeRoutine: Sub MyCodeRoutine () ' Здесь располагается ваш код End Sub Этот маленький фрагмент кода на VB иллюстрирует два важных правила. Во-первых, он показывает, как начинать и заканчивать любую процедуру (с помощью операторов Sub и End Sub). В этом коде также показано, как создавать комментарии. Комментарии — это специальные операторы, которые программа Access полностью игнорирует. Они не что иное, как заметки для вас самих (например, объяснение на обычном английском (или русском), что на самом деле делает следующая или предыдущая строка кода). Для создания комментария в начало строки вставляется знак апострофа (').
Подсказка Редактор Visual Basic отображает все комментарии зеленым цветом, поэтому легко отличить код от комментариев.
Сейчас процедура MyCodeRoutine ничего не выполняет. Для того чтобы сделать ее посообразительнее, следует добавить операторы кода между Sub и End Sub. Следующая чрезвычайно простая процедура отображает поле сообщения: Sub MyCodeRoutine () ' Следующий оператор отображает поле сообщения MsgBox "Свидетельство силы моего кода." End Sub Этот код действует, потому что язык Visual Basic включает команду, названную MsgBox. (См. примечание "Малоизвестная или недооцененная возможность. Справка по Visual Basic" далее в этом разделе для получения рекомендаций по применению команд, которые есть в вашем распоряжении.) Эта команда применяется для вывода на экран стандартного окна с выбранным вами сообщением. Само сообщение — это текстовый фрагмент (или строка на языке программистов), который как все текстовые значения в языке VB должен быть заключен в кавычки. Таким образом, программа Access знает, где он начинается и где заканчивается. (Access заставляет вас применять те же правила, что и при использовании текста в выражении.) Как только вы ввели эту команду (начинайте — действуйте!), вы готовы к выполнению вашей программной процедуры. Для этого поместите курсор где-нибудь внутри тела процедуры, это дает знать редактору Visual Basic, какой код вас интересует. Затем на панели инструментов Visual Basic щелкните мышью кнопку Run (Выполнить) (которая выглядит как кнопка воспроизведения на панели управления видеомагнитофона), или в меню выберите Run → Run Sub/UserForm (Выполнить → Выполнить процедуру/пользовательскую форму). На рис. 16.3 показан результат. Рис. 16.3. Вашу первую программную процедуру нельзя назвать ужасно полезной, но она доказывает, что вы знаете достаточно для того, чтобы написать строку кода и выполнить ее
Программа Access выполняет код процедуры построчно, от начала до конца. Когда вы выводите MsgBox, выполнение кода приостанавливается до тех пор, пока вы не щелкните мышью кнопку ОК в окне сообщения, в этот момент выполнение кода продолжится до завершения процедуры.
Примечание Помните о том, что программа Access считает код VB потенциально опасным, поэтому не выполняет его в ненадежной БД. Иначе говоря, если вы увидите предупреждение системы безопасности (см. разд. "Как Access обрабатывает опасные макросы" главы 15), следует щелкнуть мышью кнопку Параметры для отображения диалогового окна Параметры безопасности Microsoft Office, выбрать переключатель Включить это содержимое и затем щелкнуть мышью кнопку ОК. Или можете создать надежное расположение для файлов вашей БД. В разд. "Задание надежного расположения" главы 15 приводится подробное описание.
Малоизвестная или недооцененная возможность. Справка по Visual Basic Язык Visual Basic набит таинственными командами вроде MsgBox. Вы познакомитесь со многими из них в этой главе и следующей, но для углубленного изучения всех команд нужно запустить справку Access. Далее описано, как это сделать. 1. В меню редактора Visual Basic выберите последовательность команд Help → Справка: Microsoft Visual Basic (Справка → Справка языка Microsoft Visual Basic)1. 2. Вы увидите список ссылок, обещающих рассказать вам больше о языке VB. 3. Щелкните кнопкой мыши Visual Basic for Applications Language Reference (Руководство по языку Visual Basic для приложений). 4. На экране появятся дополнительные темы, касающиеся многочисленных подробностей VB. 5. Щелкните кнопкой мыши Visual Basic Language Reference (Руководство по языку 1 Справка приводится на английском языке. — Пер. 6. Теперь вы увидите темы, касающиеся непосредственно языка VB. Эти основы относятся к версии Visual Basic в любой программе пакета Office. 7. Щелкните мышью строку Functions (Функции), чтобы увидеть команды Visual Basic, включая MsgBox. (Щелкните кнопкой мыши любую функцию для отображения страницы с подробной справкой об этой функции.) Справка программы Access — замечательный способ узнать больше о Visual Basic, но после того, как вы познакомились с основными элементами языка. Если вы углубитесь в ее изучение слишком быстро, то можете обнаружить, что объяснения так же прозрачны, как суп из протертого гороха. Но когда вы закончите работу с примерами кода, приведенными в данной книге, вы будете достаточно подготовлены к ее использованию и пополнению ваших знаний.
Помещение кода в форму Непосредственное выполнение процедуры слегка неудобно. Явно запустить макрос, по крайней мере, можно из области переходов или с помощью удобной кнопки на ленте (см. разд. "Запуск макроса" главы 15). Ни один из этих вариантов не предусмотрен для кода VB. Вместо этого необходимо открыть редактор Visual Basic, выбрать подходящий модуль, перейти к нужной процедуре и затем щелкнуть кнопкой мыши команду Run (Выполнить). В реальной жизни никто так не поступает, поскольку это слишком трудоемко. К счастью, есть лучший способ. Можно поместить код в форму и затем выполнять его автоматически, когда происходит что-то важное. В следующих разделах объясняется, как это делается.
Реакция на событие формы Вместо запуска программных процедур прямо из редактора, поклонники Access связывают их с событиями формы так же, как вы делали это с макросами. Далее описано, как воспользоваться этой возможностью. 1. Откройте форму в Конструкторе. Самый быстрый способ — щелкнуть форму в области переходов правой кнопкой мыши и выбрать Конструктор (Design View). 2. Добавьте новую кнопку. Для этого выберите на ленте Инструменты конструктора форм | Конструктор → Элементы управления → Кнопка (Forms Tools | Design → Controls → Button) и затем нарисуйте кнопку в рабочей области формы. 3. Когда запустится Мастер кнопок, нажмите клавишу <Esc>, чтобы отказаться от его выполнения. Вам не нужно создавать макрос для кнопки. Эта кнопка будет снабжена чистым кодом VB. 4. Если Окна свойств нет на экране, выберите Инструменты конструктора форм | Конструктор → Сервис → Страница свойств (Forms Tools | Design → Tools → Property Sheet). 5. В Окне свойств выберите вкладку Другие (Other), а на ней свойство Имя (Name) для Программа Access использует имя кнопки для именования процедуры для вашей кнопки. Гораздо легче запомнить, что делает кнопка CommitOrder_Click (щелчок для подтверждения заказа), чем кнопка Command42_Click (щелчок для выполнения коман-ды42). Сейчас также подходящее время задать текст, отображаемый на кнопке (свойство Подпись (Caption)), если это еще не сделано. 6. В Окне свойств выберите вкладку События (Event) и выделите событие Нажатие кнопки (On Click). Когда вы щелкните кнопкой мыши внутри поля Событие (Event), в нем появится направленная вниз стрелка. 7. Щелкните кнопкой мыши направленную вниз стрелку, расположенную рядом с событием Нажатие кнопки, а затем выберите строку [Процедура обработки событий] ([EventProcedure]). Этот шаг сообщает программе Access о том, что вы вместо макроса предоставите код VB для обработки события. 8. В поле события Нажатие кнопки щелкните мышью кнопку с многоточием (...) Этот шаг открывает редактор Visual Basic и создает программную процедуру для вашей кнопки. Если процедура уже создана, программа Access переходит к имеющемуся коду, и, таким образом, его можно редактировать. Когда код вставляется в форму впервые, программа Access создает для этой формы новый модуль. Этот модуль именуется с использованием имени формы и помещается в окне Project в специальную группу, называемую Microsoft Office Access Class Objects (объекты классов Microsoft Office Access) (рис. 16.4). Если в ту же форму вставляется дополнительный код независимо от того, относится он к тому же элементу управления или к другому, Access включает новую процедуру в существующий для этой формы модуль.
Подсказка Модули форм не выводятся в области переходов. Если они нуждаются в редактировании, следует открыть редактор Visual Basic и затем в окне Project дважды щелкнуть кнопкой мыши нужный модуль. Или же можно открыть соответствующую форму, выбрать нужное событие и использовать кнопку с многоточием для перехода прямо в интересующую вас программную процедуру.
Когда выполняются описанные действия, программа Access не создает новый модуль, а вставляет новую пустую процедуру для вашего события. Если ваша кнопка названа ButtonOfPower (кнопка запуска), вы увидите код, похожий на приведенный далее: Private Sub ButtonOfPower_Click() End Sub Эта процедура похожа на процедуру, созданную раньше, но с двумя отличиями. ■ Она начинается со слова Private. Это слово гарантирует невозможность использования данной процедуры другими модулями. Данная процедура доступна только в форме, содержащей кнопку. (Если не указать слово Private, будет применяться стандартный режим доступа, называемый Public, и ваша программная процедура станет общедоступной.) В большинстве случаев выбор режима доступа не важен, но Private считается более предпочтительным. Ее имя соответствует формату [ИмяЭлементаУправления]_[ИмяСобытия]. Например, приведенная ранее процедура относится к событию Нажатие кнопки (On Click) кнопки с именем ButtonOfPower.
Рис. 16.4. Модуль для формы всегда именуется Form_[FormName]. Вы видите модуль для формы, названной OneButtonForm (однокнопочная форма)
Примечание Постойте, разве событие не называется On Click? Сохраняя все принятые соглашения в силе, язык Visual Basic, в отличие от разработчика форм в программе Access, применяет немного иное правило именования событий. Он отбрасывает предлог "On" и все имеющиеся пробелы, таким образом, событие On Click (нажатие кнопки) становится событием Click. Лучше всего не волноваться по поводу расхождения имен и предоставить возможность программе Access сформировать правильные имена для ваших процедур.
Для того чтобы проверить вашу процедуру, нужно добавить в нее код. Пока вы познакомились лишь с одной командой, поэтому попробуйте применить ее для вывода сообщения: Private Sub ButtonOfPower_Click() MsgBox "Вы щелкнули мышью кнопку ButtonOfPower." End Sub Теперь вернитесь к форме и щелкните вашу кнопку мышью. Вы должны увидеть сообщение, показанное на рис. 16.5, оно означает, что ваш код уловил событие и успешно на него отреагировал.
Подсказка Во время редактирования модуля нет необходимости сохранять его. Можно спокойно переходить между окном кода и формой, отображенной в окне программы Access, туда и обратно для проверки каждого вносимого в код изменения.
Рис. 16.5. События обеспечивают автоматическое выполнение программного кода. В данном случае, если щелкнуть мышью кнопку ButtonOfPower, Access тут же отобразит сообщение
Если позже вы уберете с формы кнопку ButtonOfPower, программа Access не удалит программный код. Он останется на прежнем месте, но будет неактивен. Это удобно, если в программном коде есть что-то полезное, что впоследствии, возможно, вы захотите применить где-нибудь еще. (В данном случае вас выручат операции вырезания и вставки.) Но если это просто фрагмент старого кода, при первой же возможности воспользуйтесь редактором Visual Basic для удаления процедуры.
Для тех кто понимает.
|
|||||||||||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 253; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.18.135 (0.009 с.) |