Как создавать запросы в access: пошаговая инструкция и рекомендации
Содержание:
Создание запроса с несколькими таблицами
Теперь, когда мы запланировали наш запрос, мы готовы его спроектировать и запустить. Если вы создали письменные планы для своего запроса, обязательно обращайтесь к ним часто в процессе разработки запроса.
Чтобы создать запрос с несколькими таблицами:
- Выберите команду « Конструктор запросов» на вкладке « Создать » на ленте.
В появившемся диалоговом окне « Показать таблицу » выберите каждую таблицу, которую вы хотите включить в свой запрос, затем нажмите « Добавить» . После того, как вы добавили все нужные таблицы, нажмите « Закрыть» . Когда мы планировали наш запрос, мы решили, что нам нужна информация из таблицы Customers и Orders , поэтому мы добавим их.
Таблицы появятся в панели «Связывание объектов» , которая связана линией соединения . Дважды щелкните тонкий раздел линии соединения между двумя таблицами, чтобы изменить направление соединения.
Регистрация Свойства диалоговое окно. Выберите вариант, чтобы выбрать направление вашего соединения.
- Выберите вариант 2: для объединения слева направо . В нашем запросе левая таблица — таблица Customers , поэтому выбор этого означает, что все наши клиенты, которые соответствовали нашим критериям местоположения, независимо от того, разместили ли они заказ, будут включены в наши результаты. Мы не хотим выбирать этот вариант для нашего запроса.
- Выберите вариант 3: для запроса справа налево . Поскольку наш правильный стол является нашей таблицей Orders , выбор этого параметра позволит нам работать с записями для всех заказов и только для клиентов, разместивших заказы. Мы выберем этот вариант для нашего запроса, потому что это именно те данные, которые мы хотим видеть.
В окнах таблицы дважды щелкните имена полей, которые вы хотите включить в свой запрос. Они будут добавлены в дизайнерскую сетку в нижней части экрана.
В нашем примере мы будем включать большинство полей из таблицы Customers : имя , фамилия , адрес , город , штат , почтовый индекс и номер телефона . Мы также будем включать идентификационный номер из таблицы Orders .
Установите критерии поля , введя требуемые критерии в строке критериев каждого поля. Мы хотим установить два критерия:
- Во-первых, чтобы найти клиентов, которые не живут в Роли, мы будем вводить Not In («Raleigh») в поле City.
- Во-вторых, чтобы найти клиентов , которые имеют телефонный номер , начинающийся с кодом 919 , мы вводим Like ( «919 *») в номер телефона поле.
После того, как вы установили критерии, запустите запрос, нажав команду « Выполнить» на вкладке « Дизайн запросов ».
Результаты запроса будут отображаться в представлении Datasheet запроса , которое выглядит как таблица. Если вы хотите, сохраните запрос, нажав команду « Сохранить» на панели быстрого доступа. Когда появится запрос на его имя, введите нужное имя и нажмите «ОК» .
Новые статьи
- Проектирование собственной базы данных в Access — 21/08/2018 15:16
- Форматирование форм в Access — 21/08/2018 15:11
- Создание форм в Access — 21/08/2018 15:05
- Изменение таблиц в Access — 21/08/2018 14:58
- Дополнительные параметры отчета в Access — 21/08/2018 14:48
- Создание отчетов в Access — 21/08/2018 14:42
- Дополнительные параметры дизайна запроса в Access — 21/08/2018 14:36
Предыдущие статьи
- Сортировка и фильтрация записей в Access — 21/08/2018 04:37
- Работа с формами в Access — 21/08/2018 04:25
- MS Access — Работа с таблицами, создание, удаление, настройка внешнего вида — 20/04/2018 17:18
- MS Access — Управление базами данных и объектами — 30/03/2018 16:18
- Начало работы в Access. Знакомство с Access 2010 — 10/02/2018 18:24
- MS Access: Введение в объекты — Таблицы, формы, запросы и отчеты — 07/02/2018 08:32
- MS Access: Что такое база данных? Отличие Access от Excel. — 03/02/2018 18:18
Заполнение таблицы
Введём в специальную таблицу только следующие данные
Поле |
Тип данных |
Описание |
№ |
Счетчик |
|
Фамилия |
Текстовый |
|
Имя |
Текстовый |
|
Дата |
Дата / время |
Дата рождения |
Пол (м) |
Логический |
Пол мужской ? |
Улица |
Текстовый |
|
Дом |
Числовой |
|
Квартира |
Числовой |
|
Учебная группа |
Текстовый |
|
Группа здоровья |
Текстовый |
Группа здоровья по физкультуре |
Увлечения |
Текстовый |
|
Глаза |
Текстовый |
Цвет глаз |
В ячейках левого столбца появившейся таблицы вводим имена полей. В соседней правой ячейке вводим тип данных. По умолчанию он задается так Текстовый. Любой другой выбирается с помощью ниспадающего меню.
Например, вводя в четвёртой строке таблицы имя поля Дата, установим тип данных Дата/время. В раскрывающемся списке Свойства поля установить курсор в наборном поле Формат поля. Во вновь раскрывающемся списке Формат поля установить Краткий формат даты.
Напоминание. Переход от ячейки к ячейке осуществляется одним из следующих способов: мышью; нажатием на клавишу Enter; клавишей Tab.
Сохраните таблицу, щелкнув на ней правой клавишей мыши — Закрыть.
В появившемся окне введите имя таблицы «Список_учеников» и щелкните на кнопке ОК. Появится запрос на создание ключевого поля – уникального поля записи. По ключевому полю можно однозначно идентифицировать запись– его значение не повторяется у разных записей. Ключевым сделаем атрибут таблицы №. Для этого установим курсор на имя этого поля и щёлкнем по кнопке − Ключевое поле. Это поле позднее будем использовать для связи записей из разных таблиц. При заполнении данной таблицы данными значения счётчика № будут формироваться самостоятельно (в поле № для каждой записи будут появляться числа – номера записей).
Заполните базу данных — не менее 20 произвольных значений.
Логические операции
Логические операции «И», «ИЛИ»
Условия отбора, заданные в одной строке, связываются по умолчанию с помощью логической операции и, заданные в разных строках — с помощью логической операции или. Эти операции могут быть также заданы явно в выражении условия отбора с помощью операторов and и or соответственно.
Вычисляемые поля
В запросе над полями могут производиться вычисления. Результат вычисления образует вычисляемое поле в таблице запроса. При каждом выполнении запроса производится вычисление с использованием текущих значений полей.
Помимо имен полей, в выражениях вычисляемых полей могут использоваться литералы и встроенные функции. В результате обработки выражения может получаться только одно значение.
Выражение вводится в бланк запроса в пустое поле строки Поле. После нажатия клавиши или перемещения курсора в другое поле строки, перед выражением в этом поле строки добавляется имя поля Выражeние N. N — целое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Имя вычисляемого поля, стоящее перед выражением, отделяется от него двоеточием. Например:
Выражение!: * где Цена и Количество — имена полей.
Имя вычисляемого поля — выражение1 становится заголовком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.
Для вычисляемых полей, как и для любых других, допускается сортировка, задание условий отбора и расчет итоговых значений.
Встроенные функции
В Access и VBA определено примерно 150 встроенных функций, которые можно использовать в вычисляемых полях и условиях отбора. Перечислим некоторые сгруппированные по назначению функции.
- Функции даты и времени. Используются при обработке дат и времени в полях и литералах. Возвращают дату и время полностью или частично (год, месяц, день), например, функция Date формирует текущую дату, функция Month выделяет месяц из значения поля, содержащего дату.
- Функции обработки текста. Используются при работе с символьными строками.
- Функции преобразования типа данных. Предоставляют возможность пользователю задавать тип данных для числовых значений, что позволяет избежать подбора наиболее подходящего типа данных системой.
- Математические и тригонометрические функции. Выполняют операции над числовыми значениями, которые невозможно выполнить с помощью стандартных арифметических операторов.
- Финансовые функции. Подобно функциям Excel, служат для расчета процента возврата по инвестициям, амортизационных отчислений, годовой ренты и т. п.
- Статистические функции. Используются при работе над полями подмножества записей для вычисления среднего значения, суммы, минимального, максимального значения.
Для записи выражения может быть использован построитель выражений, который вызывается кнопкой Построить панели инструментов.
Присвоение пользовательских имен вычисляемым полям
Пользователь имеет возможность присвоить новое имя вычисляемому полю, используя один из следующих способов:
- Изменение имени поля в запросе. В режиме конструктора запроса в бланке запроса вместо Выражением введите новое имя.
- Изменение подписи поля в свойствах поля. Установите курсор на вычисляемое поле в бланке запроса и откройте окно Свойства поля, щелкнув правой кнопкой мыши и выбрав в контекстном меню пункт Свойства. В окне Свойства поля на вкладке Общие введите нужный текст подписи в строку Подпись поля.
Запрос на объединение таблиц
Запрос извлекает данные из нескольких таблиц, имеющих одинаковые поля. Самый простой способ извлечения записей из связанных таблиц.
При объединении таблиц, связанных отношением «один-ко-многим», поле первичного ключа таблицы «один» используется для отображения связанных записей из таблицы, представляющей сторону «многие».
Когда таблицы объединены, можно легко создать запрос, извлекающий данные из нескольких таблиц.
Программа переводит графический запрос в запрос SQL – универсальный язык запросов.
Собственный язык Access JetSQL имеет отличия от ANSI SQL.
Хотя большинство запросов создаются в режиме конструктора, Access хранит их в формате SQL (структурированном языке запросов). Чтобы увидеть режим SQL, надо выбрать Вид-Режим SQL.
Расширенный перекрестный запрос
Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.
Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».
Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей
Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно
Перекрестные запросы – это наиболее простой способ поиска и выборки информации из нескольких источников данных, плюс с возможностью формирования диаграмм и графиков.
Более того, при использовании данной процедуры быстрее выполняется поиск, даже с несколькими вариантами развития.
Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».
Краткие рекомендации
Подводя итоги, нужно сказать, что решить, как создавать запросы в Access – с помощью Мастера или Конструктора, должен сам пользователь. Хотя, для большинства людей, которые используют СУБД MS Access, больше подойдет первый вариант. Ведь Мастер сам сделает всю работу, оставив для пользователя только несколько кликов мышью, при выборе условий запроса.
Чтобы использовать расширенные настройки, явно необходим опыт работы с базами данных на уровне профессионала. Если в работе задействованы большие базы, лучше всего обратиться к специалистам, дабы избежать нарушения работы СУБД и возможных потерь данных.
Есть один момент, который доступен лишь программистам. Так как основным языком СУБД является SQL, то нужный запрос можно написать в виде программного кода. Чтобы работать в данном режиме, достаточно нажать на строку уже созданного запроса, и в открывшемся контекстном меню выбрать «Режим SQL».
Общие свойства полей
Общие свойства задаются для каждого поля на вкладке Общие и зависят от выбранного типа данных.
1. Размер поля задает максимальный размер сохраняемых в поле данных.
Для поля с типом данных Текстовый задается размер от 1 до 255 знаком (по умолчанию — 50 знаков).
Для поля с типом данных Счетчик можно задать:
а) Длинное целое— 4 байта:
б) Код репликации— 16 байт.
Для поля с типом данных Числовой можно задать:
в) Байт (для целых чисел от 0 до 255, длина поля 1 байт);
г) Целое (для целых чисел от -32 768 до +32 767, занимает 2 байта);
д) Длинное целое (для целых чисел от -2 147 483 648 до +2 147 483 647, занимает 4 байта);
е) Дробные с плавающей точкой 4 байта (для чисел от —3,4хЮ38 до +3,4х1038 с точностью до 7 знаков);
ж) Дробные с плавающей точкой 8 байт (для чисел от -1,797хЮ308 до +1,797хЮ308 с точностью до 15 знаков);
з) Действительное (для целых чисел от -1038-1 до 1038-1 при работе с проектами, которые хранятся в файлах типа1 ADP, и от -1028-1 до 1028-1 — для файлов типа MDB, с точностью до 28 знаков, занимает 12 байт);
и) Код репликации. Глобальный уникальный идентификатор, занимает 16 байт. Поля такого типа используются Access для создания системных уникальных идентификаторов реплик, наборов реплик, таблиц, записей и других объектов при репликации баз данных.
Рекомендуется задавать минимально допустимый размер поля, который понадобится для сохраняемых значений, т. к. сохранение таких полей требует меньше памяти, и обработка данных меньшего размера выполняется быстрее.
2. Формат поля является форматом отображения заданного типа данных и задает правила представления данных при выводе их на экран или печать.
В Access определены встроенные стандартные форматы отображения для полей с типами данных Числовой, Дата/время, Логический и Денежный. Ряд этих форматов совпадает с настройкой национальных форматов, определяемых в окне Язык и стандарты панели управления Microsoft Windows. Пользователь может создать собственный формат для всех типов данных, кроме OLE, с помощью символов форматирования.
Для указания конкретного формата отображения необходимо выбрать и раскрывающемся списке одно из значений свойства Формат поля. Формат поля используется для отображения данных в режиме таблицы, а также применяется в форме или отчете при отображении этих нолей.
3. Число десятичных знаков задает для числового и денежного типов данных число знаков после запятой. Можно задать число от 0 до 15. По умолчанию (значение Авто) это число определяется установкой в свойстве Формат поля. Следует иметь в виду, что установка этого свойства не действует, если свойство Формат поля не задано или если выбрано значение Основной. Свойство Число десятичных знаков влияет только на количество отображаемых на экране десятичных знаков и не влияет на количество сохраняемых знаков. Для изменения числа сохраняемых знаков необходимо изменить свойство Размер поля.
4. Подпись поля задает текст, который выводится в таблицах, формах, отчетах.
5. Значение по умолчанию определяет текст или выражение, которое автоматически вводится в поле при создании новой записи. Например, если задано значение =now (), то в поле будет введена текущая дата и время. При добавлении записи в таблицу можно оставить значение, введенное по умолчанию, или ввести другое. Свойство Значение по умолчанию используется только при создании новой записи. Изменение значения свойства не влияет на существующие записи. Максимальная длина значения свойства составляет 255 знаков. Данное свойство не определено для полей с типом данных Счетчик или Поле объекта OLE.
6. Условие на значение позволяет осуществлять контроль ввода, задает ограничения на вводимые значения, запрещает ввод при нарушении условий и выводит текст, заданный свойством Сообщение об ошибке.
7. Сообщение об ошибке задает текст сообщения, выводимый на экран при нарушении ограничений, заданных свойством Условие на значение.
Как сделать условия отбора в access?
Возможности и виды запроса
Одним из основных инструментов выборки и обработки данных в СУБД Microsoft Access являются запросы.
С помощью запроса можно выполнить следующие виды обработки данных:
• Выбрать записи, удовлетворяющие условиям отбора.
• В каждой из полученных записей производить вычисления.
• Сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, в одну запись с одновременным выполнением групповых операций над другими полями.
• Произвести обновление полей в выбранном подмножестве записей.
• Создать новую таблицу БД, используя данные из существующих таблиц.
• Удалить выбранное подмножество записей из таблицы БД.
• Добавить выбранное подмножество записей в другую таблицу.
• Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц БД и включения нужных полей из нескольких таблиц.
Последовательное выполнение ряда запросов позволяет решать сложные задачи, не прибегая к программированию.
В Microsoft Access 2003 может быть создано несколько видов запроса:
2) запрос на создание таблицы;
3) запрос на обновление;
4) запрос на добавление;
5) запрос на удаление.
Создание запроса на выборку
Запрос на выборку выбирает данные из взаимосвязанных таблиц и других запросов. Результатом его является таблица, которая существует до закрытия запроса. Через эту таблицу запроса можно корректировать данные в исходных таблицах. На основе этого вида запроса строятся запросы другого вида. Запрос чем-то напоминает сочетание сортировки и фильтрации (с этими понятиями Вы уже ознакомились при выполнении соответствующей лабораторной работы по Microsoft Excel ). Простейшие запросы затрагивают только одну таблицу. Для создания простого запроса к таблице внутри конкретной БД необходимо:
1. Открыв БД, в разделе Объекты выбрать кнопку Запросы.
2. Использовать кнопку С оздать.
3. В окне диалога Новый запрос (см. рис. слева) выбрать режим Простой запрос. Использовать кнопку ОК.
4. В окне Добавление таблицы (см. рис. справа) выделить таблицы, участвующие в запросе. Использовать кнопку Д обавить. Закрыть окно диалога.
5. Составить запрос. Для этого в появившемся диалоговом окне (рисунок этого окна здесь не приведен) нужно вы полнить следующие действия:
1) С помощью кнопки «>» выбрать имена нужных полей, используемых в запросе .
2) Убедиться, что в строке Имя таблицы отображено имя нужной таблицы.
3) Нажав кнопку «Далее», в новом диалоговом окне задать имя запроса и установить флажок в позицию » изменить макет запроса «.
4) В новом диалоговом окне (см. следующий рис.) выбрать поле (или поля), по которому (по которым) будет производиться выборка (в нашем случае выбрано, например, поле «Дата Рождения», если мы хотим делать выборку только по дате рождения; но если нужна выборка по нескольким признакам, то правее этого поля можно в соседних ячейках выбрать имена других полей), а также убедиться в том, что выбрана нужная таблица.
5) В строке Сортировка (если требуется сортировка) можно выбрать порядок сортировки записей в табли це запроса.
6) В строке Вывод на экран отметить активным флажком поля, которые долж ны быть включены в результирующую таблицу.
7) В строке Условие отбора можно записать выражение, которое состоит из операндов и операторов (см. далее таблицу), позволяющих выбирать не обходимую информацию по заданному критерию отбора.
8) В строке или задать альтернативные условия отбора записей.
Управляющие запросы
Создаются, когда необходимо автоматически изменить большие объёмы информации. С помощью управляющих запросов можно обновлять данные, добавлять или удалять записи, создавать новые таблицы. Рекомендуется сразу создавать запрос на выборку и, лишь убедившись, что она правильно работает, преобразовать его в запрос на действие.
Создание таблицы
Создаёт таблицу, содержащую необходимые данные, извлекая требуемые записи из одной таблицы и добавляя их во вновь созданную. Можно этот запрос использовать для создания резервной копии данных или архивных записей.
Есть возможность создания новой таблицы в другой базе данных, выбрав свойство «Другая база данных» и введя имя базы в поле «Имя файла».
Таблица, созданная при помощи запроса, не наследует свойства полей и первичный ключ родительской таблицы.
Перед выполнением запроса можно посмотреть, что получится, отобразив запрос в режиме таблицы. Создание физической таблицы произойдёт только после нажатия кнопки «Запуск».
Можно включить в новую таблицу вычисляемое поле. При создании таблицы поле станет заполненным данными.
Для создания архивной таблицы надо скопировать исходную таблицу и затем вставить её из буфера, скопировав при этом только структуру (без данных) таблицы.
Обновление
Позволяет изменять (обновлять) соответствующие значения в таблицах (одной или нескольких). Сразу создаётся обычный запрос на выборку и только затем на его основе запрос на обновление.
Добавление
Запрос на добавление извлекает записи из одной таблицы и добавляет их в конец другой (других). Можно применить, если надо добавить большое количество новых записей (новые поставщики и потребители и т. д.). Запрос выполняется один раз, иначе одни и те же записи будут добавлены неоднократно. Запрос хорош, когда в архивную таблицу добавляются записи, которые будут затем удалены из таблицы-поставщика.
Удаляет указанные записи в таблицах (одной или нескольких).
Перед выполнением запроса на удаление надо создать такой же запрос на выборку. Лишь убедившись, что отобраны нужные записи, меняем тип запроса «Выборка» на «Удаление».
При удалении связанных записей из главной таблицы (при установленном флажке каскадного удаления) Access выдаёт некорректное сообщение, например, что будет удалена одна запись, даже если в подчинённой таблице вместе с этой записью будут удалены сотни и тысячи связанных записей (т. е. выдаётся сообщение о количестве удаляемых записей в главной таблице).
Запросы в Access
Запросы в Access являются основным инструментом выборки, обновления и обработки данных в таблицах базы данных. Access в соответствии с концепцией реляционных баз данных для выполнения запросов использует язык структурированных запросов SQL (Structured Query Language). С помощью инструкций языка SQL реализуется любой запрос в Access.
Основным видом запроса является запрос на выборку. Результатом выполнения этого запроса является новая таблица, которая существует до закрытия запроса. Записи формируются путем объединения записей таблиц, на которых построен запрос. Способ объединения записей таблиц указывается при определении их связи в схеме данных или при создании запроса. Условия отбора, сформулированные в запросе, позволяют фильтровать записи, составляющие результат объединения таблиц.
В Access может быть создано несколько видов запроса:
- запрос на выборку — выбирает данные из одной таблицы или запроса или нескольких взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. Формирование записей таблицы результата производится в соответствии с заданными условиями отбора и при использовании нескольких таблиц путем объединения их записей;
- запрос на создание таблицы — выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице;
- запросы на обновление, добавление, удаление — являются запросами действия, в результате выполнения которых изменяются данные в таблицах.
Запросы в Access в режиме конструктора содержат схему данных, отображающую используемые таблицы, и бланк запроса, в котором конструируется структура таблицы запроса и условия выборки записей (рис. 4.1).
С помощью запроса можно выполнить следующие виды обработки данных:
- включить в таблицу запроса выбранные пользователем поля таблицы;
- произвести вычисления в каждой из полученных записей;
- выбрать записи, удовлетворяющие условиям отбора;
- сформировать на основе объединения записей взаимосвязанных таблиц новую виртуальную таблицу;
- сгруппировать записи, которые имеют одинаковые значения в одном или нескольких полях, одновременно выполнить над другими полями группы статистические функции и в результат включить одну запись для каждой группы;
- создать новую таблицу базы данных, используя данные из существующих таблиц;
- произвести обновление полей в выбранном подмножестве записей;
- удалить выбранное подмножество записей из таблицы базы данных;
- добавить выбранное подмножество записей в другую таблицу.
Запросы в Access служат источниками записей для других запросов, форм, отчетов. С помощью запроса можно собрать полные сведения для формирования некоторого документа предметной области из нескольких таблиц, далее использовать его для создания формы — электронного представления этого документа. Если форма или отчет создаются мастером на основе нескольких взаимосвязанных таблиц, то для них в качестве источника записей автоматически формируется запрос. Для закрепления смотрим видеоурок: