Запросы – основной способ получения сведений из базы данных. С помощью запроса вы можете отобрать определенную информацию и рассортировать ее по значениям полей. Очень важно, что запросы позволяют фильтровать данные, то есть выбирать именно ту информацию, которая удовлетворяет определенным, заранее заданным условиям. Запросы можно применять при создании форм, отчетов, страниц доступа к данным. Использовать запросы удобно при разработке таблиц и добавлении новых записей в уже существующие таблицы, при удалении записей, поиске дублирующихся данных и т. д. Работая с языком SQL, вы исходите из существующей организации БД и более или менее стандартного набора операций, хотя структура самого запроса иногда бывает достаточно сложной. Правда, в запросе нежелательно использовать слишком разветвленные логические выражения: формального запрета на них нет и запрос построить можно, однако получившаяся структура будет громоздкой и неудобной. (Для подобных случаев в Access есть средства программирования.) Чтобы запустить запрос, следует создать событие – команду, которая распознается формой, элементом управления формы или отчета. Таким событием может стать, например, щелчок по какой-либо конкретной кнопке. Однако пользователь должен еще задать область применения запроса, так как он не запускается автоматически даже при возникновении события.
Макросы
Макросы, или макрокоманды, представляют собой заранее созданные списки действий – программы, которые выполняются после щелчка пользователя по кнопке или после других определенных действий (возникновение ошибки, открытие, закрытие элемента управления и т. д.). Каждое действие макроса выполняет определенную операцию: например, установку значения, открытие или закрытие формы, диалогового окна и др. Макрос предназначен для объединения нескольких различных действий, представляемых макрооператорами, в одну процедуру, которая легко может быть вызвана. В отличие от SQL макрооператоры тесно связаны с командами данного программного продукта, в частности Access.
В макросах все команды обычно выполняются по очереди. Исключением является ситуация, когда в макрос введено конкретное логическое условие, которое может изменить последовательность операций.
Макрос в среде Access состоит из перечня действий, которые в пошаговом режиме выполняются в случае наступления определенного события. Допустим, макрос запускается, когда пользователь щелкает по командной кнопке, закрывает форму или активизирует панель управления текстовым документом, открывшимся в окне. Макрос может выполняться также при выполнении тех или иных условий. Например, условные макросы могут отображать окно сообщения, если вводимые в поле данные имеют определенное значение. Макросы создаются в специальном окне макросов – Построитель макросов.
Сопоставляя возможности макросов и языка SQL, отметим, что макросы могут использоваться для ситуаций, привязанных к событиям [13] , возникающим независимо от пользователя, для выполнения разветвляющихся операций (например, в условных логических выражениях). Макросы удобны для простых ответов на события, но имеют свои ограничения и не всегда помогают пользователю справляться с разнообразным сложностями, возникающими в реальной практике, особенно если речь идет об Access. Например, нельзя использовать макрос для того, чтобы задать обработку события или выполнить цикл действий по записи транзакций. Макрос не возвращает значение, поэтому не может применяться для извлечения введенной пользователем информации, рассчитанного значения или результата сравнения.
Следует сказать, что отмеченные ограничения в Access 2002 надо рассматривать не как жесткое разделение областей применения с четко очерченными границами, а скорее как некую тенденцию, которая может соблюдаться отнюдь не всегда, и эти границы размываются. Так, в ряде случаев язык SQL может быть использован безотносительно к запросу, для решения каких-то вспомогательных служебных задач, например для того, чтобы внести какие-либо новые функции, изменить настройку элементов управления и т. д. Примеры таких применений будут показаны далее. При этом достаточно широко может использоваться тот же аппарат событий, к которому «привязаны» макросы.
Теоретически нет препятствий к тому, чтобы включить в макрос также и процедуру VBA. Однако на деле все обстоит скорее наоборот: макросы используются как составная часть этих программ, тем более что любой макрос легко конвертировать или включить в процедуру VBA.
Читать дальше
Конец ознакомительного отрывка
Купить книгу