Критерии отбора в запросе на выборку задаются в конструкции запроса. Значительно удобнее, если они будут задаваться не в конструкции запроса, а путем ввода параметров с клавиатуры.
Пример. Создать запрос, который позволяет выводить оценки каждый раз для разных задаваемых пользователем параметров: групп, предметов, семестров.
Решение. Создать запрос на выборку, включив поля: фамилия, номер группы, семестр, название предмета, оценка. По строке Условие отборадля поля Номер группы ввести в квадратных скобках текст [Номер группы],для поля Названиепредмета: [Название предмета], для поля Семестр: [Семестр], для поляОценка: 4 or 5.
Далее надо установить для полей параметров тип поля: вкладка Конструктор - группа Показать или скрыть – кнопка Параметры. Появится окно Параметры. В левый столбец ввести (в три строки) тексты: Номер группы, Название предмета, Семестр. Для каждого поля задать тип данных: для первых двух – Текстовый, для Семестра – Байт.
При запуске запроса сначала появится окно Введите значение параметра с текстом Номер группы. Надо ввести номер группы. Далее появятся аналогичные окна для ввода Названия предмета и Семестра. Сохранить запрос под именем зпарам.
При выполнении данного запроса приходится вручную вводить номер группы, номер семестра и название предмета. В дальнейшем мы рассмотрим как можно выбирать значения из списков, используя для этих целей форму.
При создании запросов часто возникает необходимость не только использовать имеющиеся поля, но и создавать новые, называемые вычисляемыми. Например, если в таблице имеются поля Цена и Количество, то можно создать вычисляемое поле Стоимость, определяемое путем перемножения значений полей Цена и Количество.
Вычисляемое поле может создаваться также на основе текстовых полей. Например, таблица Студент должна содержать поля: Фамилия, Имя, Отчество. Однако, в создаваемых других таблицах нам потребуется указание только фамилии и инициалов. Для этого надо с помощью запроса создать поле ФИО.
Теория. Для создания поля ФИО в запросе нужно построить сложное выражение, предусматривающее использование функции LEFT и оператора объединения текстовых значений (&). Для этих целей используется мощное программное средство, имеющееся в Access - Построитель выражений.
Окно Построителя выражений состоит из нескольких частей. В верхней части будет отражаться создаваемое выражение. Ниже ее расположена строка с кнопками операторов, используемых при создании выражений (+, -, *, /, <, >, AND, OR и др.). Под этой строкой расположена зона, состоящая из трех частей (левой, средней и правой). В левой части выводится вверху имя создаваемого запроса, далее папки: Таблицы, Запросы, Формы, Отчеты (для последующего выбора полей с данными), Функции, Константы, Операторы.В зависимости от того, какая папка выбрана в левой части содержимое средней и правой частей будет различным. Первоначально в средней части выводятся поля создаваемого запроса.
При выборе папки Таблицы и внутри ее конкретной таблицы, в средней части будет отражаться перечень полей, а в правой – можно указать значение поля, включаемого в выражение. При выборе папки Функции в средней части выводится список категорий функций, а в правой - список функций выбранной категории.
Пример. Создать поле ФИО на основании полей Фамилия, Имя, Отчество
Решение.Сначала создадим в режиме Конструктора условную таблицу, включающую поляНомер группы, Фамилия, Имя, Отчество.Назовем таблицу туслСтуд. Тип данных для всех полей – Текстовый, размер для поля Номер группы – 10 символов, для остальных – 20 символов. Таблица не содержит ключевое поле. Далее надо ввести в таблицу несколько строк, заполнив поля Фамилия, Имя, Отчество. Сохранить таблицу.
Теория. Поле ФИО будем создавать за полем Отчество. Оно должно иметь вид, например: Иванов И.И. Для этого должно быть построено выражение, включающее: Фамилию- пробел - первую букву имени - знак точки - первую букву отчества - знак точки. Кроме того, надо объединить: фамилию и пробел, пробел и первую букву имени, первую букву имени и знак точки, знак точки и первую букву отчества, первую букву отчества и знак точки. Таким образом выражение должно содержать: фамилия & «»& первая буква имени & «.» & первая буква отчества & «.» Кроме того, выражение должно содержать (дважды) функцию LEFT для выбора первой буквы имени и первой буквы отчества.