Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Создание вычисляемых полей в запросах





Создание запросов интересно не только тем, что возможно в виде одной таблицы представить данные из нескольких связанных таблиц и отобрать нужные записи из этих таблиц. Вы можете создавать столбцы в запросе, которые являются результатом вычислений над значениями других столбцов. Такие столбцы называю тся вычисляемыми. Это существенно расширяет возможности запросов. Простейшим примером вычисляемого поля в запросе может быть поле, которое объединяет имя и фамилию человека. На рис. 3.18 показан пример такого поля в запросе, созданном на базе таблиц "Сотрудники" (Employees) и "Заказы" (Orders).

Чтобы создать вычисляемое поле, нужно ввести выражение, которое вычисляет требуемое значение, в строку Поле (Field) свободного столбца бланка запроса. В данном примере это выражение представляет собой конкатенацию полей, содержащих имя и фамилию сотрудника, с пробелом между ними. Для этого используется ссылки на поля таблицы, которые в выражении заключаются в квадратные скобки. Перед выражением нужно написать имя поля: ФИО и отделить его двоеточием от выражения.

 

 

Рис. 3.18. Вычисляемое поле в запросе

Если выражение длинное, его неудобно писать в строке Поле (Field). Следует нажать комбинацию клавиш <Shift> + <F2>. Появится диалоговое окно Область ввода (Zoom) (рис. 3.19), в котором вводить выражение удобнее. Можно также использовать Построитель выражений, вызвав его щелчком по кнопке Построить (Build) на панели инструментов.

 

 

Рис. 3.19. Диалоговое окно Область ввода

 

 

Запросы с параметрами

 

Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно открыть в режиме Конструктора, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра (Enter Parameter Value), в котором пользователь может ввести конкретное значение и затем получить нужный результат.

Для этого:

1. Надо открыть данный запрос в режиме Конструктора;

2. Чтобы определить параметр запроса, ввести в строку Условие отбора (Criteria) для столбца "Название" (CompanyName) вместо конкретного значения слово или фразу и заключить их в квадратные скобки, например [Поставщик:]. Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса;

3. Чтобы Access проверяла данные, вводимые в качестве параметра запроса, нужно указать тип данных для этого параметра. Обычно в этом нет необходимости при работе с текстовыми полями, т.к. по умолчанию параметру присваивается тип данных Текстовый (Text). Если же данные в поле запроса представляют собой даты или числа, рекомендуется тип данных для параметра определять. Для этого нужно щелкнуть правой кнопкой мыши на свободном поле в верхней части запроса и выбирать из контекстного меню команду Параметры (Parameters) или выполните команду меню Запрос, Параметры (Query, Parameters). Появляется диалоговое окно Параметры запроса (Query Parameters), представленное на рис. 3.20;

 

 

Рис. 3.20. Диалоговое окно Параметры запроса

4. В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования через буфер обмена), только можно не вводить квадратные скобки. В столбце Тип данных (Data Type) выбирать из раскрывающегося списка необходимый тип данных. Нажать кнопку ОК;

5. Нужно нажать кнопку Запуск (Run) на панели инструментов, чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра (Input Parameter Value) (рис. 3.21), в которое нужно ввести значение, например Tokyo Traders. Результат выполнения запроса представлен на рис. 3.22. В него попадают только те товары, которые поставляются данным поставщиком.

В одном запросе можно ввести несколько параметров. При выполнении такого запроса для каждого из параметров будут поочередно выводиться диалоговые окна Введите значение параметра в том порядке, в котором параметры перечислены в бланке запроса.

 

 

Рис. 3.21. Диалоговое окно Введите значение параметра

 

 

Рис. 3.22. Результат выполнения запроса с параметром

Создание запроса из фильтра

 

Еще одним способом создания запроса является сохранение фильтра в виде запроса. Выше мы говорили, что фильтр используется при просмотре таблицы для отбора нужных записей. Если создать достаточно сложный фильтр в окне Фильтр (Filter by Form), то для дальнейшего использования можно сохранить его в базе данных в виде запроса. Для этого достаточно нажать кнопку Сохранить как запрос (Save as query) на панели инструментов при открытом окне Фильтр (Filter by Form):

1. Нужно открыть в режиме Таблицы таблицу "Клиенты" (Customers);

2. Нажать кнопку Изменить фильтр (Filter by form) на панели инструментов. Появится окно, в котором можно задать фильтр;

3. Выбрать из списка в поле Должность (ContactTitle) значение Менеджер по продажам (Sales Manager);

4. Проверить, как работает фильтр, нажав кнопку Применение фильтра (Apply filter) на панели инструментов. Убедившись, что фильтр работает правильно, вы можете сохранить его для дальнейшего использования;

5. Нажать кнопку Изменить фильтр (Filter by form) на панели инструментов еще раз, чтобы вернуться в окно определения фильтра;

6. Нажать кнопку Сохранить как запрос (File, Save As Query) на панели инструментов или выполнить команду Файл, Сохранить как запрос (File, Save As Query). Появится диалоговое окно (рис. 3.23), в котором необходимо указать имя запроса: Менеджеры по продажам и нажать кнопку ОК;

7. Снять фильтр, нажав кнопку Удалит ь фильтр (Remove Filter).

 

 

Рис. 3.23. Сохранение фильтра в виде запроса

Сохраненный фильтр может быть легко использован в дальнейшем, приием двумя способами:

ü Можно, снова открыв таблицу "Клиенты" (Customers), установить сохраненный фильтр. Для этого нужно сначала открыть окно определени я фильтра, нажав кнопку Изменить фильтр (Filter by form). Затем нажать кнопку Загрузить из запроса (Load from Query) на панели инструментов или выполнить команду Файл, Загрузить из запроса (File, Load from Query). При этом появится диалоговое окно Применяемый фильтр (Applicable Filter) (рис. 3.24), в котором требуется выделить в списке необходимый фильтр и нажать кнопку ОК или просто дважды щелкнуть левой кнопкой мыши по названию фильтра. Чтобы применить фильтр, нужно нажать кнопку Применение фильтра (Apply filter) на панели инструментов;

 

 

Рис. 2.24. Диалоговое окно Применяемый фильтр

В списке фильтров не присутствуют другие запросы, а присутствует только фильтр, сохраненный как запрос.

ü Выполнить запрос "Менеджеры по продажам". Для этого нужно раскрыть список запросов в окне базы данных, найти запрос "Менеджеры по продажам" и открыть его в режиме Таблицы, нажав кнопку Открыть (Open). Вы получите тот же результат, что и в первом случае, когда применяется фильтр к открытой таблице. Когда запрос открыт в режиме Таблицы или применен фильтр к таблице, нажмите кнопку Вид, Конструктор (View, Design view) на панели инструментов. Появится окно Конструктора запроса, в котором отображается запрос, соответствующий фильтру (рис. 3.25).

Хотя в режиме Таблицы запрос отображал все столбцы исходной таблицы, в бланке запроса указан только один столбец "Должность" (ContactTitle), который содержит условие отбора, и тот не включен в результат запроса. Чтобы понять, почему так происходит, нужно открыть запрос в режиме SQL. Для этого нужно нажать кнопку Вид, Режим SQL (View, SQL View). Появится диалоговое окно, содержащее инструкцию языка SQL, которая и обрабатыва-

 

 

ется при выполнении запроса (рис. 3.26). Эта инструкция имеет вид:

 
 


SELECT * FROM Клиенты WHERE (((Клиенты.Должность)= "Менеджер по продажам"));

 

Значок * означает, что выбираются все поля из таблицы "Клиенты".

 

 

Рис. 3.25. Запрос "Менеджеры по продажам" в режиме Конструктора

 

Рис. 3.26. Запрос "Менеджеры по продажам" в режиме SQL

В виде запроса можно также сохранить так называемый расширенный фильтр. Расширенный фильтр используется в том случае, если требуется задать сложные критерии отбора и сортировки записей. Чтобы создать расширенный фильтр для открытой таблицы, необходимо выполнить команду Записи, Фильтр, Расширенный фильтр (Records, Filter, Advanced Filter/Sort). При этом появляется окно Расширенного фильтра, которое очень напоминает окно Конструктора запроса. На рис. 3.27 представлено окно Расширенного фильтра для таблицы "Заказы" (Orders).

Чтобы создать такой фильтр, нужно выполнить следующие действия:

1. Открыть в режиме Таблицы таблицу "Заказы" (Orders);

2. Выделить в поле Сотрудник значение "Воронова, Дарья" и нажать кнопку Фильтр по выделенному (Filter by Selection) на панели инструментов, отфильтровав таким образом заказы, обработанные конкретным сотрудником;

3. Выполнить команду Записи, Фильтр, Расширенный фильтр (Records, Filter, Advanced Filter/Sort);

4. Перенести в бланк фильтра два поля: ДатаРазмещения (OrderedDate) и НазваниеПолучателя (ShipName);

5. Для поля ДатаРазмещения (OrderedDate) указать критерий выборки Between #01.03.98# And 131.06. 981, означающий, что отбираться будут только заказы, поступившие во втором квартале 1998 года;

6. Определить порядок сортировки записей таким образом, что сначала будут сортироваться заказы по дате размещения, а в пределах одной даты — по наименованиям клиентов (в алфавитном порядке).

 

 

Рис. 3.27. Окно расширенного фильтра

Окно Расширенного фильтра действительно очень похоже на окно Конструктора запросов, однако панель инструментов очень сильно отличаетс я от панели инструментов Конструктора запросов. Например, нельзя добавить еще одну таблицу (Расширенный фильтр строится только для одной таблицы — в данном примере вторая таблица отображает поле подстановки) или выполнить группировку записей. На панели инструментов есть только две важные кнопки: Применение фильтра (Apply filter) и Сохранить как запрос (Save as query). В бланке фильтра отсутствует строка, содержащая флажки включения поля в запрос.


Это означает, что фильтр не влияет на состав столбцов в результирующей таблице — всегда отображаются все столбцы, фильтруются только записи. Однако критерии отбора записей могут быть установлены сколь угодно сложные. Задаются они по тем же правилам, что и в запросах.

 
 


Выполнение запроса

Чтобы посмотреть результаты запроса, достаточно открыть его в режиме Таблицы. Для этого необходимо:

1. В окне базы данных на панели объектов выбрать ярлык Запросы (Queries);

2. Выделить нужный запрос в списке запросов и нажать на кнопку Открыть (Open) или дважды щелкнуть левой кнопкой мыши на нужном запросе.

После этого на экране появляется таблица, которая содержит только те записи, которые удовлетворяют критериям отбора, указанным в запросе, и те поля, которые указаны в бланке запроса. Если в запросе указан порядок сортировки записей, они выводятся на экран в соответствующем порядке.

Внешне отображение результатов запроса не отличается от отображения таблицы. Все режимы работы с таблицей, применимы и к результирующей таблице запроса. С ней можно работать так же, как и с обычной таблицей, в частности не только просматривать, но и изменять данные. Изменения сохраняются в записях базовой таблицы, на основе которой построен запрос. Если запрос создан на основе двух и более связанных таблиц, то не всегда столбцы в запросе можно редактировать.

Для выполнения запроса из режима Конструктора достаточно просто переключиться в Режим таблицы (Datasheet View) с помощью кнопки Вид (View) на панели инструментов, как мы это уже не раз делали, или с помощью команды Режим таблицы (Datasheet View) из меню Вид (View).

 







Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.