Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проверка данных с помощью условийСодержание книги
Поиск на нашем сайте
Многие гуру программы Access применяют макросы для предотвращения некорректного редактирования и других подозрительных операций над данными (например, вставок и удалений). Теперь, когда вы понимаете, как написать условие, вы сможете легко разработать проверочную логику такого сорта.
Примечание
Первый шаг — реагировать на подходящие события — главным образом события формы До вставки, До обновления и До подтверждения. Когда они возникают, можно выполнить условия и найти среди них ошибочные. Если вы видите что-то, что вам не нравится, используйте команду ОтменитьСобытие (CancelEvent) для полного прерывания процесса и, таким образом, отмены операции вставки, обновления или удаления.
Рис. 15.21. Когда устанавливается флажок Please notify me about special offers (Пожалуйста, сообщайте мне о специальных предложениях), в поле WantsEmail устанавливается значение Да. Но у этой записи есть проблема — в поле Email нет значения Примечание У команды ОтменитьСобытие нет аргументов — она просто прерывает выполняющийся в данный момент процесс. ОтменитьСобытие работает с любым событием, начинающимся со слова "До" ("Before"), что означает готовность реальной операции к выполнению, но еще не само ее выполнение.
Допустим, вы хотите создать простое условие, которое останавливает обновление определенной записи. Рассмотрите форму, показанную на рис. 15.21. В данном примере пропущенный электронный адрес вызывает серьезную головную боль. Эту проблему можно решить, сделав поле EmailAddress обязательным, но вы хотите на самом деле нечто более замысловатое. Когда WantsEmail равно Да, поле EmailAddress не должно быть пустым. С помощью макроса с условием можно реализовать именно эту логику. Вам понадобится следующее логическое условие: WantsEmail = Yes And IsNull ([EmailAddress]) Это условие возвращает значение Истина, если WantsEmail равно Да и EmailAddress пусто. Когда это выполняется, самое время отменить обновление с помощью макрокоманды ОтменитьСобытие.
Примечание Другого варианта нет. Можно использовать макрокоманду ЗадатьЗначение для замены некорректных значений. Но, как правило, лучше дать возможность пользователю, выполняющему обновление, попытаться самостоятельно устранить проблему.
Когда событие отменяется, оно не выполняет откат всех изменений. Отмена события лишь мешает завершению операции. Если изменяется запись и делается попытка перейти к другой записи, возникает событие До обновления (Before Update). Если макрос отменяет это событие, программа Access запрещает переходить к другой записи и оставляет вас на прежнем месте. Но текущая запись остается в режиме редактирования со всеми отредактированными значениями. Ваше дело устранить проблему или нажать клавишу <Esc> для полного отказа от попытки обновления. Условная макрокоманда ОтменитьСобытие — сердцевина многих проверочных макросов. Но вам нужен еще один завершающий штрих: сообщение об ошибке. Иначе пользователь, выполняющий обновление, не догадается, в чем дело. Он будет склонен считать, что Access совсем слетела с катушек. Для отображения сообщения об ошибке можно использовать макрокоманду Сообщение (MsgBox). Понятно, что вы хотите выводить сообщение об ошибке, только если ошибка действительно возникает, поэтому команды Отменитьсобытие и Сообщение должны включать условия. У программы Access есть фантастическое средство ускорения, выручающее при необходимости применять одну и ту же макрокоманду дважды. Вместо повторения одинакового условия рядом с каждой макрокомандой (что немного досадно) просто вставьте три точки (...) в столбец Условие для каждой следующей макрокоманды. Эти три точки — сокращенный вариант указания программе Access применять условие из предыдущей макрокоманды. На рис. 15.22 показан законченный макрос, а на рис. 15.23 — выполняющийся макрос. Рис. 15.22. Этот макрос состоит из двух макрокоманд с условием. Для блокировки некорректных данных присоедините его к событиям До обновления и До вставки
Рис. 15.23. Макрос находит пропущенный электронный адрес и поясняет возникшую проблему
|
||||||||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 148; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.34.209 (0.01 с.) |