Глава 10. запросы в access
Содержание:
- Очистка после экспериментов с запросами
- Дополнительная информация
- Как я могу создать Multi-Value перекрестный запрос в Access 2013?
- Ключевое поле
- Создание простого запроса
- Запросы на выборку
- SQL-запросы
- Функция DateAdd в запросах Access
- Связывание таблиц
- Создание запросов в Access
- Создание запроса с несколькими таблицами
- Практические работы по теме «Базы данных ACCESS»
- Запросы в Access 2013 с помощью элементов формы
- Установка первичного ключа
Очистка после экспериментов с запросами
Проведя значительное количество времени, создавая идеальный запрос, большинство людей готовы закрыть и перейти к чему-то другому. Однако, оставляя запись большого количества экспериментальных запросов, даже если они сохранены в выделенной области для тестовых запросов, может затруднить поиск полезных запросов (если не существует политики для удаления всех запросов в экспериментальной области на регулярной основа).
Один из способов облегчения очистки — это добавить что-то к названию запросов, которые вряд ли понадобятся снова. Существует также возможность печати или экспорта запросов и их свойств, чтобы информация не была полностью потеряна после ее удаления. Несмотря на то, что может быть трудно понять, что есть и что не полезно в начале, чем дольше вы держитесь за запросы, тем труднее будет запомнить, какие из них полезны и которые следует удалить. Нет необходимости удалять запросы в конце сеанса, но рекомендуется очищать запросы не реже одного раза в месяц.
Дополнительная информация
Способ 1
Первый метод использует функцию DSum и условия в запросе для создания суммы с накоплением с течением времени. Функция DSum суммирует текущую запись и все предыдущие записи. Когда запрос перемещается на следующую запись, функция DSum выполняется снова и обновляет общий итог.
Следующий пример запроса использует таблицу Orders из учебной базы данных Northwind для создания суммы стоимости доставки за каждый месяц 1997. В целях повышения производительности примеры данных ограничены одним годом. Так как функция DSum выполняется один раз для каждой записи в запросе, для завершения обработки запроса может потребоваться несколько секунд (в зависимости от скорости компьютера). Чтобы создать и запустить этот запрос, выполните указанные ниже действия.
Откройте учебную базу данных Northwind.
Создайте новый запрос на выборку и добавьте таблицу Orders .
В меню вид выберите пункт итоги.
Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .
В первом столбце бланка запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «Сортировать» и «Показать»:
В выражении в поле поле отображается и сортируется часть года поля OrderDate.
Во втором столбце бланка запроса введите в поле поле следующее выражение и выберите следующие параметры для полей «Итого», «Сортировать» и «Показать»:
Выражение в поле поля сортирует и отображает часть месяца поля Дата заказа в виде целого значения от 1 до 12.
В третьем столбце бланка запроса введите в поле поле следующее выражение, а для полей Итого и Show выберите следующие параметры.
Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.
Выражение в поле поле использует функцию DSum () для суммирования поля фрахта, если значения в полях Амонс и Айеар меньше или равны текущей записи, обрабатываемой запросом.
В четвертом столбце бланка запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «Сортировать» и «Показать»:
Выражение в поле поля отображает каждый месяц в текстовом формате, например Январь, фев, Мар и т. д.
В столбце пятый в бланке запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «условия» и «Показать»:
Выражение в поле поля фильтрует набор записей запроса, чтобы включить данные только из 1997.
Выполните запрос
Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:
Способ 2
Второй метод использует итоговый запрос с функцией DSum () для создания итоговой суммы по группе.
Приведенный ниже пример запроса использует таблицу «заказы» для суммирования затрат на фрахт для каждого сотрудника, а также для расчета скользящей суммы фрахта. Чтобы создать и запустить запрос, выполните указанные ниже действия.
Откройте учебную базу данных Northwind. mdb.
Создайте новый запрос на выборку и добавьте таблицу Orders.
В Виевмену щелкните итоги.
Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .
В первом столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей «Итого» и «Показать»:
В этом поле данные группируются по КодСотрудника.
Во втором столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей «Итого» и «Показать»:
Это поле суммирует данные доставки.
В третьем столбце бланка запроса введите в поле поле следующее выражение, а для полей Итого и Show выберите следующие параметры.
Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.
Выражение в поле поле использует функцию DSum () для суммирования поля фрахта, когда EmployeeID меньше текущего Емпалиас, а затем форматирует поле в долларах.
Выполните запрос
Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:
Как я могу создать Multi-Value перекрестный запрос в Access 2013?
Мой выпуск
Я работаю в Access 2013. У меня есть набор данных, который нуждается в разбивке на основе двух полей (лучше сделать перекрестный запрос). Моя проблема, мне нужно, чтобы показать SUM и COUNT каждого (поле ) «Value» — и, к сожалению, доступ еще, чтобы многозначные запросы кросс.
В справочных целях, если кто-то ищет в Интернете с подобными проблемами — в результате ошибки при попытке добавить несколько полей «значение» в доступе:
Чтобы создать перекрестный запрос, необходимо указать один или несколько Row Heading (s) варианта, один заголовок столбца вариант, и вариант один Value
Исправление проблем
Я прочитал много статей о том , как сделать это, в том числе союзов , JOIN и , и условных агрегатов — еще никто не работал.
На данный момент у меня есть два функциональных перекрестные запросы … один, который возвращает COUNT, по дате, по статусу; и один, который возвращает SUM, по дате, по статусу. Я до сих пор найти способ объединить количество и сумму в одну таблицу. На данный момент я не волнует, если это делается с помощью запроса или отчета — но я предполагаю, что запрос является самым простым способом.
У меня есть довольно много больше, чем статуса, показанные ниже, но для идеи моих данных, вот надрез от условного совокупного решения:
SELECT Format(,yyyy-mm) AS , Count(IIF(myStatus=’OPEN’, myStatus, Null)) As , Sum(IIF(myStatus=’OPEN’, , Null)) As , Count(IIF(myStatus=’PAID’, myStatus, Null)) As , Sum(IIF(myStatus=’PAID’, , Null)) As
FROM
GROUP BY Format(,yyyy-mm)
Моя цель
Получить одну таблицу результатов. Колонка 1 = Месяц обслуживания (все сырые записи в течение этого месяца в сочетании). Колонка 2 = общее количество записей, по месяцам. Колонка 3 = общая сумма поля , по месяцам.
Любая помощь в получении значения поворота и COUNT SUM в одной таблице запросов было бы весьма признателен!
Пример данных
CrossTab «Сумма» Результат запроса
Month of Service Gross Charges DENIED OPEN PAID
2011-12 $1,613.20 $1,613.20
2012-02 $999.00 $999.00
2012-05 $14,296.00 $14,296.00
2014-09 $37,776.00 $2,874.00 $8,925.50 $25,976.50
Моя цель состоит в том, чтобы просто объединить две таблицы … держать «Месяц службы», как крайние левый столбец, а затем просто «количество», «Запрещенный Кол-во», «Открыть Кол-во», а столбцах «Paid Кола-во» с в «Валовые сборы», «Отказано Amt», «Open Amt», «Платные Amt» все столбцы, основанные на месяц службы.
My SQL
Перекрестный запрос «АМТ»
TRANSFORM Sum(.) AS
SELECT Format(,yyyy-mm) AS , Sum(.) AS
FROM
GROUP BY Format(,yyyy-mm)
PIVOT .myStatus;
Перекрестный запрос «Кол-во»
TRANSFORM Count(.) AS
SELECT Format(,yyyy-mm) AS , Count(.) AS
FROM
GROUP BY Format(,yyyy-mm)
PIVOT .myStatus;
Ключевое поле
Ключевое поле
Это та запись, которая определяет запись в таблице.
Нажимаем в колонке слева на названии таблицы Читатель. Справа появилась таблица. Правой кнопкой нажимаем на названии – конструктор – в пустом поле пишем код читателя.
Сделаем это поле ключевым (на панели задач – ключевое поле) и закроем таблицу.
Это первичный ключ. Для ключевых полей используют тип – счетчик или числовой.
Определим ключевое поле для каждой таблицы аналогично предыдущей.
Книги – код книги.
Издательство – код издательства (тип данных –мастер подстановок – Издательство- выберите поле код и наименование).
Выдача – код выдачи (код читателя – таблица Читатель /код читателя и фамилия/ и код книги – таблица Книги/ код книги и название).
Любое поле можно перетащить мышкой в начало таблицы или в другое нужное место. Ключевые поля обычно ставят на первое месте
Связывание таблиц
Переходим на вкладку – Работа с базами данных – схема данных – появилось окно.
Поочередно нажимаем на название каждой таблицы и закрываем окно.
Появилась схема данных. Определим как будем связывать таблицы.
Издательства выпускают книги. Значит, в таблицу Книги надо добавить Код издательства. Для этого открываем таблицу Книги в режиме конструктора и добавляем код издательства.
Возвращаемся в схему данных и перетаскиваем Код издательства из одной таблицы в Код издательства другой. Появляется окно. Ставим Обеспечение целостности данных и в двух других пунктах ниже. Далее нажимаем создать. Появляется связь – один ко многим, т.е. одно издательство выпускает много книг.
Аналогично свяжем две другие таблицы.
Откроем таблицу Выдача через конструктор. Добавляем поле Код читателя.
Сохраняем, закрываем.
Теперь Код читателя таблицы Читатель переносим на Код читателя таблицы Выдача.
Ставим везде галочки — создать. Появилась связь (читатель берет много книг).
Теперь свяжем таблица Книги и Выдача. Для этого в таблицу Выдача добавим Код книги. И проделаем те же манипуляции.
Заполнение таблиц
Берем таблицу Читатель. Код читателя ставим на первое место. Нумерация будет автоматическая в этом поле. Вводим остальные данные (не менее 10) и сохраняем правой кнопкой.
Заполняем остальные таблицы по аналогии.
Создание простого запроса
Откроем базу данных STUD, как было рассмотрено в ЛР1. Создадим запрос, выводящий информацию о студентах, у которых имеются задолженности.
Для создания запроса активизируем окно базы данных (см. ЛР1). После этого щелкнем по корешку «Запрос» и кнопке «Создать». В появившемся диалоговом окне «Создание запроса» выберите кнопку «Конструктор». Access откроет диалоговое окно «Добавление таблицы», позволяющее выбрать базовые таблицы и запросы для создаваемого запроса. Выберите таблицы «Результаты» и «Cтуденты», нажимая кнопку «Добавить», после чего закройте это окно кнопкой «Закрыть».
Открывшееся окно конструктора запросов состоит из двух частей: верхняя содержит списки полей выбранных таблиц, а нижняя — бланк QBE для создания запроса. Каждый столбец бланка описывает одно поле, участвующее в запросе.
Включение поля в запрос производится перетаскиванием его из списка полей таблиц (расположенного в верхней части экрана) в нужный столбец бланка QBE при помощи мышки. Включение всех полей таблицы происходит перетаскиванием символа «*», находящегося вверху списка полей данной таблицы в верхней части экрана. Включите в запрос поля таблицы «Результаты»:
перетащив их в бланк QBE . Рассмотренным выше методом перетащите из таблицы “Студенты” поле Фамилия.
Запрос “Задолженность” будет иметь вид, как показано на рисунке. Установка связей между таблицами производится автоматически, используя структуру связей, созданную при генерации проекта БД. Можно задавать другие варианты связи таблиц и иные типы связей (внешнее объединение, «один-к-одному», «один-ко-многим» и т.д.). Изменение связей производится в верхней части окна выбором связанного поля в описании одной таблицы и транспортировкой его при нажатой кнопке мышки на описание соответствующего поля связанной таблицы. Тип связи можно изменить, активизировав ее щелчком мышки на линии связи.
Условие для отбора нужных нам полей производится включением этого условия для данного поля в строке QBE «Условие отбора». Несколько значений отбора вводятся в одну строку, разделенные логическими условиями AND или OR, либо вводятся в последующие ячейки строки «или». Установим для таблицы «Результаты» условие отбора студентов, у которых задолженности, для чего в столбец описания поля внесем строку «Задолженность» из таблицы «Результаты», и в строке «Условие отбора» введем: Да
Сбросим для этого поля флажок «Показать», запрещающий вывод данного поля в выборке (т.к его не обязательно выводить). Кроме стандартных операторов сравнения ‘=’, ‘ ‘, ‘ =’, Access поддерживает также BEETWEN, IN, LIKE. В запросе могут присутствовать т.н. вычисляемые поля — вычисленные значения над любыми полями таблицы. Access поддерживает большое число функций и операторов, применяемых при генерации вычисляемых полей. Чтобы просмотреть результат запроса необходимо на панели нажать кнопку:
Изменить заголовок можно также активизировав столбец с описанием поля; а затем выполнив команду «Свойства» меню «Вид», ввести в строку «Подпись поля» его название.
Строки итоговой таблицы желательно отсортировать по полю «Фамилия» таблицы «Студенты». Для этого в столбце с описанием данного поля в строке «Сортировка» выберем пункт «по возрастанию». При необходимости сортировки по нескольким полям Access сортирует данные в порядке их расположения в бланке QBE. После просмотра запроса видно, что необходимо ввести поле Имя из таблицы “Студенты”, т.к фамилии повторяютя и запрос не несет необходимой информации. Чтобы вставить поле, перетяните его в сетку QBE на место, где он должен находится и все остальные поля передвинуться на одну позицию в право. Запустить полученный запрос на выполнение можно также командой «Выполнить» меню «Запрос». Проверим полученные результаты на соответствие критериям отбора. Сохраним полученный запрос под именем «Задолженности». Запрос представляет собой таблицу:
Создадим запрос, в котором будет вычисляться дополнительное поле. Кафедра вычислительной техники решила своим работникам к новому году выплатить премию в размере 10% от зарплаты. Создадим запрос на базе таблицы “Преподаватели”, с полями Фамилия, Кафедра, Должность, Зарплата. Чтобы создать вычисляемое поле “Премия”, выводящее информацию о величине премии работнику, в новом столбце (следующим за заполненным), в строке “Поле” введем выражение Зарплата*0,1. Изменим заголовок поля, введя перед выражение его название. Ячейка будет содержать: «Премия: *0,1».
Изменить заголовок можно также активизировав столбец с описанием поля, а затем выполнив команду «Свойства» меню «Вид», ввести в строку подпись поля его название. Введите в строку «условие отбора» для кафедры «Вычислительная техника».
Запросы на выборку
Создание запросов в Access данного вида предполагает построение таблицы, содержащей такие же структурные элементы, как и обычная. Она создается на базе фактических данных.
Результаты представляют собой динамический набор данных, в связи с чем при закрытии набора записи «исчезают», оставаясь в первоначальных таблицах. Сохранение данных запросов означает сохранение их структуры.
Данные запросы формируются указанием полей и таблиц, их содержащих, включаемых в запрос, описанием рассчитываемых полей, совершаемых групповых операций над первоначальными записями, и формированием условий отбора (например, с какой по какую дату осуществлялась реализация определенной группы товаров).
Создание запросов в MS Access данного вида предполагает, что их можно создать вручную или при помощи «Мастера создания запросов».
Для определения полей и таблиц, включаемых в запрос, переходим в режим конструктора.
Для перехода в режим конструктора в Access 2013 нужно в области навигации кликнуть контекстной кнопкой мыши на имени формы и выбрать «Конструктор». Нажав ALT+F8, можно вызвать «Список полей», из которых поля можно перетащить непосредственно в форму.
SQL-запросы
В Access 2013 и других версий запросы выполняются при помощи языка структурированных запросов SQL.
Для создания SQL-запросов необходимо перейти в режим конструктора, затем на кнопке «Вид» выбрать «Режим SQL». В результате появится диалоговое окно, в котором в поле Select вводим названия столбцов, а в поле From — то, что будет выводиться в строках, например названия поставщиков (если первый столбец «Название»).
В Access используется не чистый SQL, а его диалект Jet-SQL. Основными инструкциями для запросов в этом языке являются: SELECT, по которому осуществляется выборка из записей по определенным условиям (названия полей исходных таблиц, переносящихся в результирующую таблицу), UPDATE — используется с целью редактирования записей, DELETE — для удаления каких-либо указанных записей, CREATE — для создания новых объектов БД. В MS Access также используются TRANSFORM для построения перекрестных запросов, WITH OWNER-ACCESS OPTION для создания специальных запросов пользователем, не имеющем доступа к таблицам, к которым должен быть доступ у этого запроса, IN (для обеспечения связи с удаленной БД), DISTINCTROW (создание запроса с возможным объединением данных). Также могут применяться итоговые функции SQL, встроенные функции Access и VBA.
Функция DateAdd в запросах Access
Синтаксис: DateAdd («интервал», число, дата).
Функция DateAdd в запросах Access содержит 3 аргумента. Все аргументы обязательные.
1 аргумент — ИНТЕРВАЛ. Интервал это тот период времени, который необходимо добавить (вычесть) к требуемой дате.
2 аргумент — ЧИСЛО.
Это то количество заданных интервалов, которое будет добавлено к дате.
3 аргумент — ДАТА. Дата, к которой добавляются интервалы с помощью функции DateAdd.
Все параметры первого аргумента — интервала представлены ниже:
Приведем простой пример и посмотрим как работает функция DateAdd в запросах Access.
Создадим таблицу, которая будет состоять из 2 полей: «начальная дата» и «начальное время». Оба поля имеют тип «Дата/Время». Поле «начальная дата» — формат «краткий формат даты», «начальное время» — формат «краткий формат времени».
Заполним таблицу произвольными данными.
Далее создадим простой запрос, где к полю «начальная дата» добавим 10 дней.
Добавим в запрос поле «начальная дата». Добавим новое вычисляемое поле:
Данный пример демонстрирует основной принцип работы функции DateAdd в запросах Access: к дате прибавляется 10 дней.
Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 10 месяцев. для этого достаточно поменять значение интервала с «d» на «m».
Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 10 лет. для этого достаточно поменять значение интервала с «m» на «yyyy».
Рассмотрим следующий пример, где используется функция DateAdd в запросах Access.
Добавим к дате 1 квартал. для этого достаточно поменять значение интервала с «yyyy» на «q».
Функция DateAdd в запросах Access не только прибавляет указанный интервал к дате, но и вычитает указанный интервал из даты.
Пример вычитания из даты 10 лет представлен ниже:
Если вам нужна готовая база данных Access, то ознакомьтесь со списком представленным ЗДЕСЬ.
Связывание таблиц
Если для какой-то из таблиц не было определено ключевое поле, то в поле Тип отношения отображается текст «Не определено».
- Откройте окно Схема данных, нажав кнопку на панели инструментов
- В диалоговом окне Добавление таблицы выберите вкладку Таблицы и, нажимая кнопку Добавить, разместите в окне Схема данных все ранее созданные таблицы базы данных, список которых будет отображен в диалоговом окне. Можно добавить все таблицы сразу, выделив 1-ую таблицу и нажав Shift — последнюю таблицу.
- Нажмите кнопку Закрыть. В результате в окне Схема данных будут представлены все таблицы базы данных КОЛЛЕДЖ со списками своих полей.
- Установите связь между таблицами ГРУППА и СТУДЕНТ по простому ключу Номер Группы или Код группы (смотри в своей БД). Для этого в окне Схема данных установите курсор мыши на ключевое поле НГ главной таблицы ГРУППА и перетащите это поле на поле Номер Группы в подчиненной таблице СТУДЕНТ Для удаления ошибочной связи в окне Схема данных выделите ненужную связь и нажмите Del.
- В открывшемся окне Изменение связей в строке Тип отношения установится один-ко-многим. Отметьте доступный для этого типа отношений параметр Обеспечение целостности данных.
- Установите флажки каскадное обновление и удаление связанных полей, тогда будет обеспечена автоматическая корректировка данных для сохранения целостности во взаимосвязанных таблицах. Нажмите Создать. Чтобы линии связи не пересекались и были удобны для восприятия, расположите таблицы в окне Схемы данных в соответствии с их относительной подчиненностью.
- Установите связи по простому ключу для других пар таблиц:
ПРЕДМЕТ—ПРЕПОДАВАТЕЛЬ
ПРЕДМЕТ-ЗАНЯТИЯ
ПРЕПОДАВАТЕЛЬ—ГРУППА
ГРУППА—ЭКЗАМЕН
Создание запросов в Access
Запрос (query) – это средство, позволяющее собрать необходимую информацию из объемной базы данных, т.е. это вопрос, сформированный по отношению к БД. Создание запросов в Access может осуществляться несколькими способами: по образцу (QBE)и с помощью структурированного языка запросов (SQL).
QBE – средство для поиска необходимых сведений в базе.
SQL – составленные программистом инструкции, задающие ход дальнейших действий для полученных результатов.
Создание запросов в Access 2007, 2010, 2013:
Перед созданием необходимо определиться с:
- полями в БД, по которым будет происходить поиск информации;
- предметом поиска;
- перечнем полей, которые будут демонстрироваться в результате выполнения задания.
В окошке «База данных» следует выбрать вкладку с соответствующим названием и дважды щелкнуть по ней, после чего на экране появится новое окно Конструктора.
- В окне «Добавление таблицы» выберите один или несколько документов, которые следует использовать и нажмите кнопку «Добавить». После всех выбранных вариантов, нажмите кнопку «Закрыть».
- Все выбранные объекты переместятся на верхнюю панель Конструктора, связи (если таковые имеются) также будут отображены. При отсутствии связей, Access автоматически устанавливает их исходя из наличия полей с одинаковыми именами. Лишние соединения, добавленные приложением, основанные на неверном совпадении, можно удалить вручную, выделив необходимые, и нажав Delete.
- Укажите поля, которые должны отображаться в запросе Access с помощью выделения мышкой, перетаскивания или использования раскрывающегося списка.
- Следующие строчки «Условие» и «Или» обязательны к заполнению. Здесь располагаются условия отбора записей: они могут быть даже в виде логического выражения.
- Установить порядок сортировки можно с помощью одноименной кнопки для каждого поля отдельно, используя критерии по возрастанию или по убыванию. По умолчанию это параметр отключен для всех результатов.
- Чтобы удалить поле из табличных результатов, уберите «птичку» с пункта «Вывод на экран».
- После того, как бланк сформирован, его следует сохранить. Выберите на панели инструментов Access кнопку с соответствующим названием или выполните команду «Файл/Сохранить».
Как видите, создание запросов в 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
Практические работы по теме «Базы данных ACCESS»
- Задание по теме “Базы данных” Вар. 1
- Дан набор полей: фамилия, имя, дата рождения, пол, образование, страна проживания, оклад, номер медицинского полиса, размер заработной платы, дата проведения соревнований, место работы, должность, количество детей, семейное положение, вид спорта, дата последнего посещения врача, диагноз, занятое место, ИНН, телефон, домашний адрес.
- Какие из перечисленных полей необходимо будет включить в БД «Поликлиника»?
- Описать структуру таблицы, указать первичный ключ.
- Спроектировать БД «Программа передач на неделю», с помощью которой можно будет получить ответы на вопросы:
- Какие фильмы идут в четверг?
- Во сколько будут показаны программы новостей в понедельник по каналам НТВ и РОССИЯ?
Описать структуру таблицы, указать первичный ключ. Какие поля следует включить в каждый запрос, какие условия отбора накладываются на эти поля?
Какое место будет занимать команда «Arsenal» после сортировки данных по полю «забито» в убывающем порядке?
№ | команда | Забито | пропущено | всего очков |
- 1. 2
- 2. 3
- 3. 4
- 4. 1
- Задание по теме “Базы данных” Вар. 2
- Дан набор полей: фамилия, имя, дата рождения, пол, телефон, образование, страна проживания, оклад, номер медицинского полиса, размер заработной платы, дата проведения соревнований, место работы, должность, количество детей, семейное положение, вид спорта, дата последнего посещения врача, диагноз, занятое место, ИНН, домашний адрес.
- Какие из перечисленных полей необходимо будет включить в БД «Банк (получение кредита)»?
- Описать структуру таблицы, указать первичный ключ.
- Спроектировать БД «Программа передач на неделю», с помощью которой можно будет получить ответы на вопросы:
- В какое время идут сериалы в четверг?
- Какие программы о животных идут в субботу по каналу Культура?
Описать структуру таблицы, указать первичный ключ. Какие поля следует включить в каждый запрос, какие условия отбора накладываются на эти поля?
- Дана база данных телефонов предприятия.
- Какое место займет запись «Самойлова», после сортировки данных по полю «Имя» в возрастающем порядке?
- 1. 4
- 2. 1
- 3. 2
- 4. 3
№ | Фамилия | Имя | Должность | Номер телефона |
1 | Иванов | Сергей И. | завхоз | 2-13 |
2 | Орлов | Петр Н. | инженер ТБ | 1-25 |
3 | Трошкин | Леонид В. | директор | 2-22 |
4 | Самойлова | Наталья Г. | секретарь | 1-15 |
Запросы в Access 2013 с помощью элементов формы
Создание формы Пошук
Создадим пустую форму. Для этого выберем в меню вкладку Создание и кликнем на Пустая форма.
Получим форму в режиме макета. Кликнем правой кнопкой мышки по форме и выберем в контекстном меню Свойства формы (или Работа с макетами форм — Конструктор — Сервис — Страница свойств).
Справа появится Окно свойств. В выпадающем списке строки Источник записей вкладки Данные выберем Для форми пошуку
После этого в сервисе выберем Добавить поля. Окно свойств сменится на Список полей.
Добавим на форму следующие элементы (перетягивание мышкой из списка полей на форму):
Дата (дважды), Найменування клієнта, Адреса, Телефон, Рахунок, Найменування товару, Ціна (дважды), Кількість (дважды), Передоплата, Сума передоплати (дважды).
- Изменим надписи для даты, цены, количества и суммы предоплаты.
- Дата: → Дата з:
- Дата: → Дата по:
- Ціна: → Ціна від:
- Ціна: → Ціна до:
- Кількість: → Кількість від:
- Кількість: → Кількість до:
- Сума передоплати: → Сума передоплати від:
- Сума передоплати: → Сума передоплати до:
Выделим поле напротив надписи Дата з:. В инструментах конструктора форм выберем вкладку Конструктор. Откроем окно свойств для выделенного элемента (Сочетание клавиш ALT+ENTER; Конструктор — Сервис — Страница свойств или в контекстном меню выбрать Свойства)
В окне свойств перейдем на вкладку Другие и в строке Имя впишем Дата з
Перейдем на вкладку Данные и в строке Данные сотрем Дата
Аналогично поступим и с другими полями формы.
Дата по: вписываем имя Дата по в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем Date(); в строке Правило проверки впишем >#01.01.2010# и в строке Сообщение об ошибке — Введіть дату після 1 січня 2010 року!.
- Найменування клієнта:, Адреса:, Телефон:, Рахунок:, Найменування товару: очищаем строку Данные вкладки Данные.
- Ціна від: вписываем имя Ціна від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть суму > нуля!
- Ціна до: вписываем имя Ціна до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную цену); в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть суму > нуля!
- Кількість від: вписываем имя Кількість від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1; в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть кількість > нуля!
- Кількість до: вписываем имя Кількість до в строке Имя вкладки Другие;очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальное количество); в строке Правило проверки впишем >0 и в строке Сообщение об ошибке — Введіть кількість > нуля!
- Передоплата: очищаем строку Данные вкладки Данные.
Сума передоплати від: вписываем имя Сума передоплати від в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем . ; в строке Правило проверки впишем >=0 и в строке Сообщение об ошибке — Введіть суму, яка більше або дорівнює нулеві!
Сума передоплати до: вписываем имя Сума передоплати до в строке Имя вкладки Другие; очищаем строку Данные вкладки Данные; в строке Значение по умолчанию вписываем 1000 (можно вписать любое число, ориентируйтесь на максимальную сумму предоплаты); в строке Правило проверки впишем >=0 и в строке Сообщение об ошибке — Введіть суму, яка більше або дорівнює нулеві!
Преобразуем поле Найменування клієнта в поле со списком (контекстное меню поля)
Выполним следующее: Окно свойств — Данные — Источник строк — … — Довідник клієнтів — Найменування клієнта — закрыть построитель запросов и подтвердить сохранение.
Аналогично преобразуем в поле со списком Найменування товару. В качестве источника выбрать Найменування товару.
В результате получим
Закроем и сохраним форму под именем Пошук
Установка первичного ключа
Если вы сразу не установили ключевое поле, то надо это проделать. Для определения первичного ключа выделите поле Код группы и нажмите на панели конструктора таблиц кнопку с изображением ключа или выберите команду Ключевое поле из меню. В Microsoft Access можно выделить три типа ключевых полей:
счетчик, простой ключ и составной ключ.
Если первичный ключ не установлен пользователем до сохранения вновь созданной таблицы, Access выдаст запрос о необходимости включения в таблицу поля первичного ключа. При положительном ответе Access создаст ключевое поле типа счетчикс именем Код, в которое для каждого блока данных будет вводиться уникальный номер.
Простойключ определяется полем, содержащим уникальное значение.
Ключевое поле не позволит вводить в таблицу повторяющиеся или пустые значения, поскольку поле первичного ключа содержит однозначный идентификатор для каждой записи. Ключевое поле помогает Microsoft Access наиболее активно организовать поиск, хранение и объединение данных.
В случаях, когда невозможно гарантировать уникальность значений каждого поля, создают составной ключ, состоящий из нескольких полей. Такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении «многие-ко-многим».