СУБД MS Access. Разработка запросов к базе данных
Основное назначение запросов – осуществлять выбор интересующей информации из базы данных, можно также использовать запросы и для ввода данных, когда стандартных средств, имеющихся в таблицах, недостаточно. Создавать запросы можно с помощью Конструктора запросов или используя Мастер. Запросы подразделяются на простые (не более одной таблицы) и сложные (может обращаться к данным из нескольких таблиц и содержать вычисляемые поля).
Создание запросов с помощью Конструктора. Для создания запроса в окне базы данных перейдите к списку запросов. Нажмите кнопку Создать. Появится диалоговое окно "Новый запрос", из опций которого нужно выбрать пункт "Конструктор" и нажать OK. В появившемся диалоговом окне следует выбрать таблицы, из которых будут отобраны данные. После добавления необходимых таблиц следует нажать на кнопку Закрыть. Появится окно конструирования запроса.
Все необходимые параметры для запроса задаются в окне RQBE (Relational Query By Example – Связанный Запрос По Образцу). Окно конструирования запроса состоит из двух частей. В верхней части отображаются участвующие в запросе таблицы. Если между таблицами определены связи, они будут показаны. Эта область напоминает окно схемы данных. Нижняя область окна Конструктора запросов представляет собой диалог RQBE, организованный в удобной табличной форме (тело запроса). Заголовки строк в RQBE представляют собой параметры запроса, которые и нужно указать, чтобы отобрать данные. Но прежде необходимо определить поля и названия таблиц, из которых будут выбираться данные. Можно указать, следует ли выводить отдельные поля на экран, определить ключи сортировки значений в выбранных полях, а также задать условия отбора значений из полей.
Чтобы поместить необходимые поля из таблиц в область RQBE, просто перетащите их из таблицы в строку Поле тела запроса. Названия поля и таблицы будут автоматически добавлены в RQBE. В строке Сортировка устанавливаются параметры сортировки значений в полях (по возрастанию, по убыванию, отсутствует). Здесь важно, в каком порядке вы добавили поля из таблиц в RQBE – приоритет определятся по порядку следования полей слева направо. Это означает, что, установив ключи сортировки для полей, в результате запроса данные будут отсортированы. Если необходимо изменить порядок следования полей запроса, выделите весь столбец щелчком мыши по его заголовку (курсор мыши изменит вид) и перетащите его в нужное место. Если какое-либо поле таблицы должно участвовать в запросе, но отображать данные из этого поля не нужно, снимите флажок в строке Вывод на экран.
С помощью условий отбора можно указать Access, какие именно данные следует выбрать из конкретного поля. Для этого следует поместить курсор в ячейку строки Условие отбора и ввести выражение, задающее условие отбора. При вводе выражений условий отбора следует пользоваться операторами. Одни операторы следует записывать словами, другие – символами ( = равно, <>не равно,> больше, < меньше, >= больше или равно, <=меньше или равно, Like - как, Not – не, Between – между, Or – или). Правила ввода условий отбора довольно разнообразны (например, в текстовых полях примеры данных нужно заключать в кавычки) и приводить их здесь не имеет смысла, поскольку в большинстве случаев Access способна самостоятельно исправить ошибки при вводе условий отбора данных. В случае возникновения проблем с синтаксическими ошибками при формировании запросов, лучше всего обратиться к системе помощи. В том случае, если вам нужно выбрать информацию из логического поля, нужно ввести в поле Условие отбора "Да" или "Нет".
Для выполнения запроса нужно нажать кнопку с таблицей или с восклицательным знаком на панели инструментов. Перейдя в режим отображения результатов запроса, Access покажет в окне табличную форму, информация в которой удовлетворяет параметрам запроса. Такая форма называется Dynaset – динамическая таблица (результаты в этой форме будут динамически изменяться при редактировании исходных таблиц).
Панель инструментов, которую отображает Access в режиме просмотра результатов запроса, такая же, что и в режиме ввода данных в таблицу. Поэтому вы можно пользоваться теми же инструментами – сортировкой, поиском, фильтром. Помните, что если понадобится изменить условия отбора данных, всегда можно быстро перейти в режим конструирования запроса, нажав кнопку режима конструктора. Более того, если необходимо, можно пользоваться Dynaset и для ввода данных. Однако, следует помнить, что информация должна быть занесена во все поля таблиц, участвующих в запросе.
Сохранить запрос можно на этапе проектирования или в режиме просмотра нажатием кнопки с дискетой. Появится диалоговое окно, в котором следует ввести название запроса и нажать Enter. Сохраняются только параметры запроса – имена таблиц и полей, условия отбора, режим вывода на экран и т.д. Сами же данные в Dynaset обновляются из таблиц при выполнении запроса.
Использование Мастера запросов Мастер запросов может формировать некоторые типы запросов, создание которых требует от пользователя знания программирования на Visual Basic и SQL. Проектируя такие запросы, обычному пользователю легко запутаться. Поспользуясь Мастером запросов для создания перекрестного запроса, результатом выполнения которого будет так называемая кросс-таблица. В отличие от Dynaset, заголовками столбцов кросс-таблицы служат не имена, а значения полей таблицы БД или запроса. Итак, перейдите к списку запросов и нажмите кнопку Создать. В диалоговом окне выберите пункт Перекрестный запрос и нажмите OK. Запустится Мастер. В первом диалоге следует выбрать таблицу или запрос, на базе которого будет построена кросс-таблица. Проектируя перекрестный запрос на основе созданного вами запроса. В групповом поле Показать диалогового окна выберите пункт Запросы и выделите название вашего запрос. Нажмите кнопку Далее. В новом окне следует выбрать поля, из которых будут взяты значения для заголовков строк. Выберите поле Название и нажмите Далее. Следующий диалог посвящен выбору полей, значения которых следует взять в качестве заголовков столбцов. Выделите поле Дата и продвигайтесь дальше. На следующем этапе нужно задать шаг, с которым будут сгруппированы значения в столбцах Дата. Далее следует указать, какие вычисления следует произвести в ячейках. Щелкайте по кнопке Далее, назовите ваш перекрестный запрос и жмите на кнопку Готово. Теперь можно увидеть запрос. Столбцы с пустыми значениями можно скрыть, если их выделить и выполнить команду Формат\Скрыть столбцы.