Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Условие отбора в access

Условие отбора в access

Для ограничения списка записей, получаемых в результате работы запроса, только удовлетворяющими определенным условиям — в бланке запроса предусмотрены поля для условий отбора. Коротко про это было рассказано в «Шаг 22 — Создание запроса на выборку», теперь настало время разобраться более подробно.

Самое главное, что следует запомнить, это то, что для каждого поля запроса можно создать свое условие отбора. Если это числовое поле, то можно указать интересующий диапазон значений. Например, в поле Цена можно задать условие &gt20, что позволит выбрать все книги, цены которых превышают цифру 20.

Для текстового поля задается строка, содержимое которой будет сравниваться со значениями соответствующего поля таблицы. Совпадение значений приведет к добавлению текущей записи в итоговую таблицу. При составлении строки знак * означает любую последовательность символов, а ? один любой символ. Например, условие «Новикон» в поле Издательство, выдаст список книг, напечатанных только в этом издательстве. Условие «Нов*» соответствует значениям начинающимся с Нов, «*а*» выдаст все издательства с буквой а в названии, «. « отыщет все комбинации из пяти символов, а «??*» соответствует значениям состоящим не менее чем из двух символов.

Так можно поступать, если условие отбора для запроса заранее известно и не возникнет необходимость его изменения. На практике, во многих случаях пользователю надо предоставить возможность самостоятельного выбора того, что он хочет найти в таблицах базы данных. Для этого параметр условия отбора должен запрашиваться при каждом сеансе работы запроса. Предположим, что покупатель хочет узнать про наличие в магазине книг Айзека Азимова. Все остальные книги его не интересуют, а тратить свое время на просмотр всей базы в поисках нужной информации он, разумеется не намерен. Тогда в запросе просто необходимо предусмотреть возможность получить от покупателя эту информацию и выдать ему только записи, у которых Имя автора Айзек, а Фамилия автора Азимов.

Для этой цели служит специальная команда языка SQL, которая выглядит так:

В квадратных скобках записывается текст, выводимый в окне ввода параметра, появляющегося на экране, сразу после начала работы соответствующего запроса. Поле ввода принимает набранное на клавиатуре значение и передает его в качестве условия отбора. Далее СУБД просматривает все записи базы данных в поисках совпадения значений и выводит результаты поиска в итоговой таблице.

По умолчанию Access определяет тип вводимых данных как Текстовый. Если же параметр задает условие отбора из столбца с данными типа Числовой или Дата/Время, то необходимо вручную назначить тип данных. Это делается следующим образом:

    В режиме конструктора, скопируйте текст подсказки (без квадратных скобок) из поля Условие обора в буфер обмена. Для этого выделите строку подсказки и нажмите комбинацию клавиш Ctr+C на клавиатуре или воспользуйтесь пунктом Копировать, контекстного меню правой кнопки мыши.

Выберите из меню в верхней части окна программы, команду Запрос — Параметры, для открытия окна Параметры запроса.

Вставьте текст подсказки в поле Параметр. Для этого поместите курсор в поле и нажмите комбинацию Ctrl+V на клавиатуре. Убедитесь в отсутствии квадратных скобок в тексте. Если необходимо, то удалите их.

Перейдите в столбец Тип данных и выберите из раскрывающегося списка, необходимый формат вводимой информации. Открытие списка производится с помощью мыши или по клавише F4 на клавиатуре.

  • Нажмите кнопку ОК для закрытия окна и перехода в режим конструктора.
  • Можно указать несколько условий отбора для поля запроса. Второе условие помещается в строку Или, третье на строку ниже и так далее, пока не будут указаны все необходимые значения. Невыполнение хотя бы одного из условий отбора, запрещает добавление записи в результирующую таблицу. Поэтому необходимо предельное внимание во время набора значений. Опечатки или неточности могут кардинально повлиять на работу создаваемого запроса.

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

    Построение условий в запросах на выборку в СУБД MS Access

    В большинстве современных СУБД имеется свой вариант QBE, незначительно отличающийся от первого описания QBE, предложенного в конце 70-х годов ХХ в. Рассмотрим некоторые возможности QBE СУБД MS Access.

    Используем для примера таблицу БД, которая относится к торговле (рис. 3.10). Имя таблицы TYPE (типы товаров). Она имеет столбцы: товар – названия товара; цвет – его цвет; стоимость – стоимость товара.

    Выборка данных может осуществляться по следующим вариантам:

    1. Простая выборка, например: «Вывести товары зеленого цвета из таблицы TYPE».

    2. Простая выборка с упорядочиванием.

    3. Выборка с квалификаторами (условиями). Выбор записей из исходной таблицы может быть основан на: а) точном совпадении; б) частичном совпадении; в) сравнении.

    Запросы позволяют получать результирующие таблицы, поля которых удовлетворяют определённым условиям (критериям). Эти условия задают в бланке запроса в строке Условия отбора. Условиями отбора являются логические выражения, состоящие из операторов и операндов. Используются операторы сравнения =, , <> (не равно), Between, In, Like и и логические операторы And, Or, Not. Допускается применять шаблоны с подстановочными символами.

    Рис. 3.10. Пример таблицы БД

    Если точное значение не известно или необходимо вводить значение не полностью, то удобно использовать шаблон (образец) с подстановочными символами (знаками). Примеры подстановочных символов:

    * — соответствует любому количеству любых символов. Пример: 77* — для нахождения всех телефонов с номерами, начинающимися на 77.

    ? — соответствует одному текстовому символу. Пример: 77-4?-0? — для нахождения всех телефонов с номерами, содержащими четыре указанные цифры.

    Шаблоны используются совместно с оператором Like. Этот оператор позволяет создавать шаблоны, использующие подстановочные символы при поиске в текстовых полях. Например, фамилия сотрудника известна неточно. Это может быть Петров, Петровский, Пеотровский и т.п. Тогда следует использовать для выборки в строке Условие запись Like «Пе*».

    Известно, что имя состоит из 4-х букв. Тогда подойдет запись Like «. «.

    Оператор Between задаёт интервал значений. Например, Between 1 And 5

    (указанные края интервалов в выборку включаются).

    Оператор In выполняет проверку на равенство любому значению из списка, заданному в круглых скобках. Например, In(«ручка»;»духи»).

    Логические операции И, ИЛИ могут быть заданы явно в выражении условия с помощью операторов AND и OR. Например, «духи» OR «карандаш».

    В качестве операндов в запросах могут использоваться литералы, константы, идентификаторы (ссылки).

    Литералами являются конкретные значения, воспринимаемые системой так, как они записаны. Литералом может быть число, дата, строка. Например, 1146, #31.01.02 #, «Липецк».

    Константами являются постоянные значения, которые определены в Access. Например, True, False, Null, Да, Нет.

    Идентификаторосуществляет ссылку на поле, элемент управления или свойство. Идентификаторами могут быть имена полей, таблиц, форм, и так далее. Они заключаются в квадратные скобки. Ссылка на конкретное значение должна указывать на его местоположение в иерархии объектов в БД. Ссылка на поле в таблице имеет вид [Имя таблицы]![Имя Поля]. Например, [Сотрудники]![Фамилия].

    Условие отбора целесообразно формировать с помощью построителя выражений. Для этого следует открыть окно Построитель выражений,щёлкнув кнопку Построитьна панели инструментов или выбрав команду Построитьв контекстном меню. Предварительно необходимо установить курсор мыши в ячейке ввода условия.

    Условие точного несовпадения значений одного из полей. Если в таблице надо найти записи, значения полей которых не удовлетворяют определенному условию, то используется оператор Not. Оператор Not или <> вводится перед сравниваемым значением. Пример. Отобрать все записи таблицы TYPE, за исключением записей «карандаш» в поле Товар. Для этого в бланке запроса в столбце поля Товар в строке Условие отбора вводится Not » карандаш».

    Читать еще:  Что такое поле в access

    Условие неточного совпадения. Выбор записей по условию неточного

    совпадения значений можно осуществить, используя оператор Like. Этот оператор позволяет найти требуемые записи, зная лишь приблизительное написание текстовой величины. В операторе Like можно использовать шаблоны с подстановочными символами, что расширяет возможности поиска записей при неточном задании условий. Пример условия отбора: Like “[д-к]*”. Здесь — (минус) соответствует любому символу из диапазона. Диапазон необходимо указывать по возрастанию (д-к, но не к-д).

    Выбор записей по диапазону значений. Для задания диапазона значений в окне конструктора запросов используются операторы >, 100.00 AND

    Дата добавления: 2015-08-20 ; просмотров: 8568 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

    Условия отбора записей

    Литералы — конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, текстовые строки, даты. Текстовые строки заключаются в двойные кавычки, даты — в знаки (#). Например, 567, «Информатика», #1-Января-99#.

    Константы — не изменяющиеся значения, которые определены в Access, например, True, False, Да, Нет, Null.

    Идентификатор — ссылка на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, форм, отчетов и т. д., которые должны заключаться в квадратные скобки. Как правило, Access производит автоматическую подстановку скобок.

    Во многих случаях ссылка на конкретное значение должна указывать точное его местоположение в иерархии объектов базы данных, начиная с объекта верхнего уровня. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, ссылка на поле в таблице примет вид: [Имя таблицы]! [Имя поля], а ссылка на свойство DefaultValue элемента управления Дата рождения в форме СТУДЕНТ: Forms! [СТУДЕНТ]! [ Дата рождения].DefaultValue

    Операторами сравнения и логическими операторами, использование которых допускается в выражении условия отбора, являются:

    Эти операторы определяют операцию над одним или несколькими операндами.

    Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =.

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

    Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?).

    Оператор Between позволяет задать интервал для числового значения и даты. Например:

    Between 10 And 100

    задает интервал от 10 до 100; можно задать интервал дат:

    Between #01.01.1997* And #31.12.1997*

    Оператор in позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например:

    In («Математики»;»Информатики»; » Истории»)

    Оператор Like позволяет использовать образцы, использующие символы шаблона, при поиске в текстовых полях. Например: Like «Иванов* «

    Сформировать условие отбора можно с помощью построителя выражений. Перейти в окно Построитель выражений можно, нажав кнопку Построить на панели инструментов конструктора запросов или выбрав команду Построить в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в поле строки ввода условия отбора.

    После ввода выражения в бланк и нажатия клавиши [Enter] Access выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.

    Логические операции

    Логические операции «И», «ИЛИ»

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

    Вычисляемые поля

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

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

    Выражение вводится в бланк запроса в пустое поле строки Поле. После нажатия клавиши [Enter] или перемещения курсора в другое поле строки, перед выражением в этом поле строки добавляется имя поля Выражeние N. N — целое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Имя вычисляемого поля, стоящее перед выражением, отделяется от него двоеточием. Например:

    Выражение!: [Цена]*[Количество] где Цена и Количество — имена полей.

    Имя вычисляемого поля — выражение1 становится заголовком столбца в таб­лице с результатами выполнения запроса. Это имя можно изменить.

    Для вычисляемых полей, как и для любых других, допускается сортировка, задание условий отбора и расчет итоговых значений.

    Встроенные функции

    В Access и VBA определено примерно 150 встроенных функций, которые можно использовать в вычисляемых полях и условиях отбора. Перечислим некоторые сгруппированные по назначению функции.

    • Функции даты и времени. Используются при обработке дат и времени в полях и литералах. Возвращают дату и время полностью или частично (год, месяц, день), например, функция Date формирует текущую дату, функция Month выделяет месяц из значения поля, содержащего дату.
    • Функции обработки текста. Используются при работе с символьными строками.
    • Функции преобразования типа данных. Предоставляют возможность пользователю задавать тип данных для числовых значений, что позволяет избежать подбора наиболее подходящего типа данных системой.
    • Математические и тригонометрические функции. Выполняют операции над числовыми значениями, которые невозможно выполнить с помощью стандартных арифметических операторов.
    • Финансовые функции. Подобно функциям Excel, служат для расчета процента возврата по инвестициям, амортизационных отчислений, годовой ренты и т. п.
    • Статистические функции. Используются при работе над полями подмножества записей для вычисления среднего значения, суммы, минимального, максимального значения.

    Для записи выражения может быть использован построитель выражений, который вызывается кнопкой Построить панели инструментов.

    Присвоение пользовательских имен вычисляемым полям

    Пользователь имеет возможность присвоить новое имя вычисляемому полю, используя один из следующих способов:

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

    Условие отбора в access

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

    Конструирование запросов на выборку с условиями отбора

    Рассмотрим запросы на выборку в Access на примере получения информации из таблицы ТОВАР базы данных Поставка товаров.

    Задача 1. Пусть необходимо выбрать ряд характеристик товара по его наименованию.

    1. Для создания запроса в окне базы данных выберите вкладку ленты — Создание (Create) и в группе Запросы (Queries) нажмите кнопку Конструктор запросов (Query Design). Откроется пустое окно запроса на выборку в режиме конструктора — ЗапросN (QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 4.2).
    2. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

    В результате выполненных действий в окне конструктора запросов (рис. 4.1) в верхней панели появится схема данных запроса, которая включает выбранные для данного запроса таблицы. В данном случае одну таблицу ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы. Нижняя панель является бланком запроса, который нужно заполнить.

    Читать еще:  Qnetworkaccessmanager передать в поток

    Кроме того, на ленте появляется и автоматически активизируется новая вкладка Работа с запросами | Конструктор (Query Tools | Design) (на рис. 4.3 представлена на часть этой вкладки), на которой цветом выделен тип созданного запроса — Выборка (Select). Таким образом, по умолчанию всегда создается запрос на выборку. Команды этой вкладки представляют инструментарий для выполнения необходимых действий при создании запроса. Эта вкладка открывается, когда в режиме конструктора создается новый запрос или редактируется существующий.

    1. Для удаления любой таблицы из схемы данных запроса установите на нее курсор мыши и нажмите клавишу . Для добавления ― нажмите кнопку Отобразить таблицу ( Show Table) в группе Настройка запроса (Query Setup) на вкладке Работа с запросами | Конструктор (Query Tools | Design) или выполните команду Добавить таблицу (Show Table) в контекстном меню, вызываемом на схеме данных запроса.
    2. В окне конструктора (рис. 4.4) последовательно перетащите из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, НАЛИЧИЕ_ТОВ в столбцы бланка запроса в строку Поле (Field).
    3. Для включения нужных полей из таблицы в соответствующие столбцы запроса можно воспользоваться следующими приемами:
      • в первой строке бланка запроса Поле (Field) щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит поля таблиц, представленных в схеме данных запроса;
      • дважды щелкнуть на имени поля таблицы в схеме данных запроса;
      • для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе * (звездочка) в списке полей таблицы в схеме данных запроса.
    4. Если вы по ошибке перетащили в бланке запроса ненужное поле, удалите его. Для этого переместите курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкните кнопкой мыши. Столбец выделится. Нажмите клавишу или выполните команду Удалить столбцы (Delete Columns) в группе Настройка запроса (Query Setup).
    5. В строке Вывод на экран (Show) отметьте поля, иначе они не будут включены в таблицу запроса.
    6. Запишите в строке Условия отбора (Criteria) наименование товара, как показа-но в бланке запроса на рис. 4.4. Так как выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Используемое в выражении текстовое значение вводится в двойных кавычках, которые добавляются автоматически.
    7. Выполните запрос, щелкнув на кнопке Выполнить (Run) или на кнопке Режим (View) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записью из таблицы ТОВАР, отвечающей заданным условиям отбора.

    1. Если при вводе сложного наименования товара вы допустили неточность, товар не будет найден в таблице. Использование операторов шаблона — звездочка (*) и вопросительный знак (?) (стандарт ANSI-89, используемый для запросов по умолчанию) или знак процента (%) и подчеркивания (_) (ANSI-92, рекомендуемый как стандарт для SQL Server), упрощает поиск нужных строк и позволяет избежать многих ошибок. Введите вместо полного имени товара Корпус* или Корпус%. Выполните запрос. Если в поле наименования товара одно значение начинается со слова «Корпус», результат выполнения запроса будет таким же, как в предыдущем случае. После выполнения запроса введенное выражение будет дополнено оператором Like «Корпус*». Этот оператор позволяет использовать символы шаблона при поиске в текстовых полях.
    2. Если необходимо найти несколько товаров, используйте оператор In. Он позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Запишите в строке условий отбора In («Корпуc MiniTower»;»HDD Maxtor 20GB»;»FDD 3,5″). В таблице запроса будет выведено три строки. В операторе In не допускается использование символов шаблона.
  • Сохраните запрос, щелкнув на вкладке Файл (File) и выполнив команду Сохранить (Save). В окне Сохранение (Save As) введите имя запроса Пример1. Заметим, что имя запроса не должно совпадать не только с именами имеющихся запросов, но и с именами таблиц в базе данных.
  • Закройте текущий запрос по команде контекстного меню Закрыть (Close) или нажав кнопку окна запроса Закрыть (Close).
  • Выполните сохраненный запрос, выделив запрос в области навигации и выбрав в контекстном меню команду Открыть (Open).
  • Для редактирования запроса выделите его в области навигации и выполните в контекстном меню команду Конструктор (Design View).
  • Задача 2. Пусть надо выбрать товары, цена которых не более 1000 руб., и НДС не более 10%, а также выбрать товары, цена которых более 2500 руб. Результат должен содержать наименование товара (НАИМ_ТОВ), его цену (ЦЕНА) и НДС (СТАВКА_НДС).

    1. Создайте новый запрос в режиме конструктора, добавьте таблицу ТОВАР. В окне конструктора (рис. 4.5) последовательно перетащите из списка полей таблицы ТОВАР в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС.
    2. Запишите Условия отбора (Criteria), как показано в бланке запроса на рис. 4.5. Между условиями, записанными в одной строке, выполняется логическая операция AND. Между условиями, записанными в разных строках, выполняется логическая операция OR.
    3. Выполните запрос, щелкните на кнопке Выполнить (Run) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записями из таблицы ТОВАР, отвечающими заданным условиям отбора.
    4. Сохраните запрос, выполнив соответствующую команду в контекстном меню запроса, которое вызывается при установке курсора на заголовок запроса. Дайте ему имя Пример2.

    Задача 3. Пусть надо выбрать все накладные за заданный период. Результат должен содержать номер накладной (НОМ_НАК), код склада (КОД_СК), дату отгрузки (ДАТА_ОТГР) и общую стоимость отгруженного товара (СУММА_НАКЛ).

    1. Создайте новый запрос в режиме конструктора, добавьте таблицу НАКЛАДНАЯ. В окне конструктора последовательно перетащите из списка полей таблицы НАКЛАДНАЯ в бланк запроса все необходимые поля.
    2. Для поля ДАТА_ОТГР в строке Условия отбора (Criteria) запишите Between #11.01.2008# And #31.03.2008#. Оператор Between задает интервал дат (в ANSI-92 вместо знака # используются одинарные кавычки ‘). Кроме того, этот оператор позволяет задать интервал для числового значения.

    Для закрепления смотрим видеоурок:

    Условия отбора записей;

    Условия отбора записей — это набор предопределенных в Access или задаваемых вами правил. Они указывают Access, какие записи вы хотите просмотреть в динамическом наборе данных. Иначе говоря, с помощью условий отбора записей вы создаете ограничивающие фильтры, чтобы указать, какие записи следует найти, а какие — оставить за пределами динамического набора данных.

    Условия задаются в строке свойства Условие отбора (Criteria) бланка запроса с помощью выражения. Выражение может задаваться по образцу или использовать сложные функции выбора.

    Для текстового поля можно вводить условия символьного типа. Подобные условия задаются по образцу. Обратите внимание, что вы не вводили знак «равенства» и не заключали текст в кавычки, хотя Access автоматически взяла слово в двойные кавычки. (Это пример ее мощности и гибкости.)

    Обычно при работе с символьными данными приходится вводить равенства, неравенства или перечислять все допустимые значения.

    При вводе простого выражения в поле текстового типа Access берет образец из ячейки свойства Условие отбора (Criteria) и интерпретирует его таким образом, чтобы показать все записи, в которых содержится такой же образец данных.

    Это средство является довольно мощным инструментом. Учтите, что вы лишь задали образец данных, a Access не только интерпретировала его, но и использовала для создания динамического набора данных запроса. Это как раз то, что называют запросом по образцу (query by example): вы вводите образец и выполняете запрос на его основе.

    Для удаления критерия из ячейки выделите ее содержимое и либо нажмите клавишу , либо выберите команду Правка►Удалить (Edit►Delete).

    Условия можно также задавать для полей с данными типа Числовой (Numeric), Дата/время (Date/Time) и Логический (Yes/No).

    Access может сравнивать значение поля типа Дата/время (Date/Time) с заданным значением, используя следующие операторы сравнения: , = и их комбинацию. Обратите внимание, что Access автоматически размещает значения даты между разделителями (символами #). Разделители позволяют Access отличать данные типа Дата/время (Date/Time) от данных типа Текстовый (Text). Так же, как при вводе текстовых образцов, вам необязательно вводить знаки #, поскольку Access понимает, что вам нужно, и сама преобразует формат ввода.

    Читать еще:  Уроки по access

    Запрос является объектом БД. Он представляет собой сформулированную информационную потребность.

    При работе с запросом можно выделить два этапа: формирование (проектирование) и выполнение. При выполнении запроса выбирается информация из всех таблиц БД в соответствии с критерием запроса.

    Формирование запроса производится в Конструкторе запросовкомандами:

    — ВставкаЗапрос;

    — инструментом Новый объект–Запрос;

    — вкладкаЗапрос – Создать запрос с помощью Конструктора;

    — вкладкаЗапрос – кнопка Создать запрос с помощью Мастера.

    В верхней части окнаКонструктора (рис. 1) размещаются нужные таблицы посредством команды ЗапросДобавить таблицу или та же команда в контекстном меню. В нижней части окна расположен бланк запроса, информация в него заносится путем перетаскивания нужных полей из таблиц в верхней части окна в строку «Поле» или двойным щелчком мыши. При этом имя таблицы в бланке подставляется автоматически.

    Наличие «галочки» в строке «Вывод на экран» означает присутствие данного поля в таблице результатов поиска. Критерии запроса устанавливаются в строке «Условие отбора» и последующих строках, связанных логическим оператором OR. Все критерии отбора, указанные в одной строке, объединяются оператором AND.

    В качестве «Условия отбора» могут быть выражения (вычисляемое поле), даты, текст, которые вносятся либо вручную, либо инструментом , либо с помощью команды контекстного меню Построить. Константы типа Дата/Время заключаются в #.

    Запросы бывают разных типов: на выборку, на создание, на обновление, на добавление, на удаление, перекрестный, итоговый, параметрический и др. По умолчанию формируется запрос на выборку. Тип запроса может быть преобразован в любой другой командой Запросили инструментом . Выполнение запроса осуществляется командой ЗапросЗапуск или инструментом .

    Вычисляемые поля в запросах

    С помощью запросов можно задать вычисления над данными и сделать вычисляемое поле новым полем в наборе данных. Для создания нового поля в пустой ячейке строки Поле в бланке запроса вводится формула: Имя поля: Выражение

    Для построения выражений имеется специальное средство Построитель выражений, вызываемый правой кнопкой мыши на поле или кнопкой Построить.

    Рис.2. Окно Построителя выражений

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

    Условия запроса могут быть включены непосредственно в бланк запроса, но, для того чтобы сделать его более универсальным, можно вместо конкретного значения отбора включить в запрос параметр, т. е. создать параметрический запрос. Для этого в строку «Условие отбора» вводится фраза в квадратных скобках, которая будет выводиться в качестве «подсказки» в процессе диалога, например, [Введите фамилию]. Таких параметров может быть несколько, каждый для своего поля.

    Для каждого параметра можно указать тип данных, который корректируется командой Запрос– Параметры.При задании нескольких параметров имя каждого должно быть уникальным.

    При выборе данных может понадобиться найти какую-либо функцию, например, сумму значений или максимальное значение в поле. Запросы, выполняющие вычисления над группой записей, называются итоговыми. Для их составления следует войти в Конструктор запросов и выбрать ВидГрупповые операции. В бланке запроса появится новая строка с наименованием «Групповая операция», в ней содержится слово «Группировка». В этой строке следует указать, какое вычисление необходимо выполнить.

    Возможные операции в строке «Групповые операции»:

    AVG — среднее значение;

    MIN — минимальное значение;

    МАХ — максимальное значение;

    COUNT- количество записей со значениями (без пустых значений);

    STDEV — стандартное отклонение;

    FIRST- значение в первой записи;

    LAST — значение в последней записи.

    Особый тип итоговых запросов, представляющих результаты поиска в виде матрицы, называется перекрестным. Для его создания нужно в Конструкторе запроса выполнить команду ВставкаЗапросПерекрестный запрос или кнопка СоздатьПерекрестный запрос.

    Для каждого поля такого запроса может быть выбрана одна из установок: «Заголовки строк», «Заголовки столбцов», «Значение», которое выводится в ячейках таблицы, и «Не отображается».

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

    Модификация БД с помощью запросов на изменение

    С учетом того, что запросы на модификацию БД приводят к необратимым изменениям информации, содержащейся в БД, целесообразно выполнять их в два этапа. На первом этапе следует произвести отбор модифицируемых данных запросом на выборку. Проверить правильность выборки. На втором этапе изменить статус запроса на выборку, установив его в соответствии с заданием. Затем повторно выполнить запрос с новым статусом.

    Запрос на обновление

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

    Выполняется этот вид запроса в два этапа: сначала проверяется правильность отбора обновляемых записей с помощью запроса на выборку, затем он преобразуется в запрос на обновление и выполняется повторно.

    При обновлении полей следует иметь в виду, что если при проектировании таблицы в свойствах поля было указано «Условие на значение», то при обновлении этого поля условие может быть нарушено, чего не допустит MS Access. Поэтому нужно или изменить условие на значение, или удалить это условие в Конструкторе.

    Запрос на добавление

    Периодически убирая в архивные таблицы «старые» записи, можно увеличить быстродействие основных частей и улучшить обзорность БД.

    Кроме того, при необходимости добавить данные в таблицу БД из другой базы можно также использовать запросы на добавление.

    Запрос на удаление

    «Старые» или неиспользуемые записи таблиц можно удалить, но обязательно сначала произвести выборку и проверить ее. Целесообразно сделать копию.

    Запрос на добавление

    1. Создайте путем копирования дубликат таблицы CONT без данных, назвав ее MEDAL (Медаль), для отбора медалистов. Для этого в контекстном меню для таблицы CONT выберите Копировать, затем выполните команду Вставить, в параметрах вставки укажите «Только структура» (см рис.). Просмотрите таблицу MEDAL — она должна быть пустой и иметь такую же структуру, как и таблица CONT.

    2. Отберите в таблицу MEDAL записи обо всех абитуриентах-медалистах. Для этого:

    — создайте запрос на выборку, включив в него все поля таблицы CONT (Контингент) в любой последовательности, и критерий по полю mdl (медаль) (Да в строке Условие отбора), запустите запрос для проверки правильности отбора записей;

    — измените статус запроса «Выборка» на запрос «Добавление» (ЗапросДобавление), в появившемся окне задайте имя таблицы для добавления MEDAL, обратите внимание на появление строки «Добавление» в бланке запроса;

    — выполните запрос и подтвердите добавление; сохраните запрос, обратив внимание на значок у его имени. Просмотрите результаты добавления данных в таблице MEDAL.

    — запрос на добавление записей в таблицу HOSTEL (Общежитие) для всех иногородних (не москвичей);

    — запрос на добавление записей в таблицу STUD (Студенты) для тех абитуриентов, у которых суммарный балл по экзаменам больше 30.

    Запрос на удаление

    6. Удалите из таблицы CONT (Контингент) записи об абитуриентах, получивших хотя бы по одному из экзаменов менее 5 баллов.

    — создайте запрос на выборку, включив в него все поля таблицы CONT (Контингент) и критерий по полям с экзаменационными оценками, запустите запрос для проверки правильности отбора записей;

    — измените статус запроса «Выборка» на запрос «Удаление». (ЗапросУдаление)

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×