Создание и выполнение запроса на обновление. Создание запросов access


Видео: создание запросов с внешними соединениями

Иногда с помощью запроса требуется просмотреть все записи из одной таблицы вместе с соответствующими записями из другой. Для этого следует создать внешние соединения.

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

Однако при использовании внешних запросов будут возвращаться все данные из одного источника и лишь некоторые из другой таблицы или другого источника данных.

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

Левые и правые внешние связи

При использовании внешних связей таблица, из которой отображаются все записи, называется базовой. Таблица, из которой отображаются лишь некоторые (совпадающие) записи, называется вторичной.

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

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

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

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

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

Как видите, довольно важно правильно задать левую и правую таблицы, и их расположение в окне "Параметры объединения" может отличаться от такового в окне запроса. Чтобы понять, какие данные будут выводиться при помощи запроса, внимательно прочитайте текст в диалоговом окне "Параметры объединения".

1. Добавьте источники данных

Добавьте в качестве источников данных все необходимые таблицы и запросы. (Если вы вдруг что-нибудь забудете, то сможете добавить другие таблицы и запросы позже.)

Если Access обнаружит связи между источниками данных, они отобразятся.

2. Добавьте соединение

  • Если между источниками данных не появились связи, следует создать соединение. Перетащите поле из одного источника данных на необходимое поле из другого. Таблица, из которой вы перетащили поле, в диалоговом окне "Параметры объединения" отобразится слева. По умолчанию Access создаст внутреннее соединение. Если вам требуется внешнее соединение, измените его тип.

3. Изменение соединения

  1. Дважды щелкните необходимую линию, изображающую соединение.

  2. В диалоговом окне Параметры объединения выберите второй или третий пункт, чтобы создать внешнее соединение. После этого нажмите кнопку ОК.

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

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

Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.

Вам нужны дополнительные возможности?

Создание простых запросов

Обучение работе с Excel

Обучение работе с Outlook

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

Внешние соединения работают в левую или правую сторону и возвращают ВСЕ данные из одной таблицы и только СООТВЕТСТВУЮЩИЕ данные из другой. Эти соединения полезны, когда нужно узнать, какое условие НЕ выполняется; например НЕ продается определенный товар или студенты НЕ записались на конкретную лекцию.

Давайте рассмотрим этот вопрос более подробно.

Таблица, которая возвращает ВСЕ данные называется базовой, а таблица, которая возвращает СООТВЕТСТВИЯ, — вспомогательной.

Какая таблица базовая, а какая — вспомогательная, зависит от направления соединения.

Если используется правое внешнее соединение, то базовой будет таблица справа. Если же используется левое внешнее соединение, то базовой будет таблица слева.

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

Применим знания на практике.

На вкладке Создание нажмите кнопку Конструктор запросов. Теперь добавим таблицы «Сведения о заказах» и «Товары».

Мы видим, что Access использовал связь «один ко многим» как ШАБЛОН для соединения, а это значит, что перед нами внутреннее соединение.

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

Мы это знаем, так как если бы запрос вернул данные по незаказанным товарам, мы бы увидели пустые записи в этом столбце.

Вернемся на вкладку «Конструктор». Щелкните линию связи правой кнопкой мыши или дважды коснитесь ее, а затем выберите пункт Параметры объединения. Выберите второй параметр и обратите внимание на линию связи.

Стрелка указывает, что это внешнее соединение. Она направлена в сторону вспомогательной таблицы. Нажмите кнопку «Выполнить», отсортируйте данные по возрастанию, и вы увидите, какие товары не продаются.

Что произойдет, если мы воспользуемся правым внешним соединением?

Внесем изменения, выполним запрос и не увидим ни одной пустой записи, как и при внутреннем соединении.

Если мы посмотрим на диалоговое окно параметров объединения, то поймем почему.

Мы возвращаем все данные из таблицы «Сведения о заказах» и только СООТВЕТСТВИЯ из таблицы «Товары». Другими словами, мы видим только товары для соответствующего заказа, и такой же результат возвращает нам внутреннее соединение.

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

support.office.com

СУБД MS Access. Создание запросов. Сортировка в запросе. Создание запроса по образцу с условием.

ИНСТРУКЦИОННАЯ КАРТА № 5

На выполнение практического занятия по предмету "Компьютеризация с/х производства"

Для студентов специальности «Ветеринарная медицина»

Утверждаю

Председатель цикловой комиссии

Общественных дисциплин

________________

Тема: СУБД MS Access. Создание запросов. Сортировка в запросе. Создание запроса по образцу с условием.

Цель работы— Научиться следующему;

1.  создавать запросы с помощью Мастера

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

3.  создавать запросы По образцу с условием;

4.  использовать при создании запросов сортировку данных по полям,

Норма времени: 2 часа.

Оснащение рабочего места: ЭВМ, инструкционные карты, конспект.

2. Порядок выполнения.

Запросы предназначены для отбора данных, удовлетворяющих заданным критериям, например, данных о клиентах проживающих в определенном регионе, городе и т. д. Возможно составление запросов из нескольких таблиц. В качестве базы данных будет использован файл базы данных БазаХХХ.Mbd (т. е. Ваш Личный файл).

Создание запроса с помощью конструктора.

1. Запустите Microsoft Access.

2. В меню Файл выберите команду Открыть. Будет выдано окно диалога Открытие базы данных, в котором необходимо открыть файл созданное ранее базы данных.

3. В окне База данных выберите вкладку Запрос, а затем нажмите на кнопку Создать. Перед вами появится окно Создание запроса.

Рассмотрим создание запроса с помощью Конструктора.

4. В окне Создание запроса выберите команду Конструктор. На переднем плане вы увидите окно диалога Добавление таблицы. Создавать запросы можно на основании таблиц или запросов, открыв соответствующую вкладку в данном окне.

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

6. Закройте окно диалога Добавление таблиц.

7. Активизируется окно Запрос на выборку. В верхней части окна вы увидите выбранные для запроса таблицы с перечнем полей.

8. Для составления запроса выбрать необходимые поля.

Из таблицы Студенты понадобится:

поле Код студента;

поле Фамилия,

Поле имя;

Из таблицы Адреса понадобится поле Адрес, Поле Увлечения

Из таблицы Лабораторные и стипендия Понадобится

поле Размер стипендии

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

10. В результате ваших действий должно появиться окно запроса.

11. Запрос составлен, при закрытии окна запроса, сохраните его под именем Запрос 1.

12. Затем выбрать кнопку на Панели инструментов или в меню Запрос команду Открыть.

13. Вы получите список учащихся с указанием их Имен, фамилий, адресов, кодов студента И Размером стипендии.

14. При необходимости получившийся список можно отсортировать - (Например, по Фамилия), Для этого необходимо проделать следующее.

1. В меню Вид На Панели инструментов Выберите команду Конструктор Запросов, Чтобы вернуться в Режим Конструктора.

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

15. На панели инструментов выберите кнопку Конструктор чтобы просмотреть, как выглядит Запрос На языке запросов.

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

17. Вновь на Панели инструментов В меню Запрос активизируйте команду Открыть

18. Теперь сохраните Запрос. Для этого в меню Файл Выберите Сохранить/ Запрос В открывшемся окне укажите имя запроса., например Запрос2 (Обычно запросам дают имена, соответствующие смыслу запросов).

Создание запроса по образцу с условием.

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

1. В окне созданной База данных Выберете вкладку Запрос, А затем нажмите на кнопку Создать.

2. В появившемся окне — Создание запроса выберите строку Конструктор.

3. В окне диалога Добавление таблицы Выберите вкладку Запросы, Выделите нужный вам запрос, например; Запрос3.

4. Щелкните на кнопке Добавить.

5. Закройте окно Добавление таблицы, Щелкнув на кнопке Закрыть.

6. Выделите все имена полей в списке полей запроса, используя клавишу Shift.

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

Далее нужно будет задать условие отбора.

7. В строке Условие отбора Укажите условие, по которому будут отобраны записи. Например, нам необходимо получить данные о студенте, чей Код студента в журнале 4.

8. Для этого в поле № По журналу В строке Условие отбора Поставьте цифру 4.

9; Выполните Запрос.

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

10. Сохраните запрос, например, под именем Запрос4 — выбор по номеру,

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

12. Завершите работу с Microsoft Access.

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

Самостоятельное задание;

1. Создайте таблицу Успеваемость, в которой были бы поля: Код студента, Фамилия, № Группы, Экзамен1, Экзамен2, ЭкзаменЗ.

2. Заполните таблицу данными о студентах разных групп (не менее 15-20 записей).

3. Создайте запрос Отличники с условиями выбора студентов с отличными оценками по всем экзаменам.

4. Создайте запрос Успеваемость1 успеваемости в целом с условиями выборки по номеру кокой - либо введенной вами группы.

5. Создайте запрос Успеваемость2 успеваемости с условиями выборки студентов, имеющих тройки и четверки.

3. Контрольные вопросы.

1. Для чего предназначены Запросы при работе с Базами данных?

2. Как создать Запрос с помощью Мастера?

3. Как создать Запрос в режиме Конструктора?

4. Каким образом можно произвести Сортировку по полям в Запросе?

5. Каким образом можно задать Условия отбора?

Создание запроса с помощью Мастера.

1.  Запустите Microsoft Access.

2.  В меню Файл выберите команду Открыть. Будет выделено окно диалога Открытие базы данных, в которых необходимо открыть файл базы данных БазаХХХ.Mbd.

3.  В окне БазаХХХ.Mbd: База данных Выберети вкладку Запрос, А затем нажмите на кнопку Создать, перед вами появится окно создания запроса.

4.  Для создания запроса с помощью Мастера выберете в окне Новый запрос Крманды Простой запрос, Перекрестный запрос, Повторяющиеся записи, Запись без подчиненных. Вначале выберете установку на создание с помощью мастера запроса на повторяющиеся записи в перечне запросов. Появится окно Мастера по разработке запросов.

5.  В следующем окне с перечнем созданных таблиц выберите, например таблицу Лабораторные и стипендия и нажмите кнопку Далее.

6.  В появившемся окне - Поиск повторяющихся записей выберите один или несколько полей, в которой есть повторы(если их не больше 10) и нажмите Далее (Следует выбрать поле, в котором есть одинаковые значения, например «Зачет» или «Незачет». Если вы выберете 2 поля, то должны быть повторы в обоих полях)

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

8.  Появится последнее окно Мастера по разработке запросов. В этом окне необходимо проделать следующее:

1. в поле Имя запроса присвоить имя. Например Запрос1;

2. поставить переключатель в положение Просмотр результатов выполнения запроса;

3. нажать кнопку Готово.

Запрос будет создан и вы увидите его в следующем окне.

9.  Для того, чтобы убедиться, что этот запрос работает, введите в таблицу Лабораторные и стипендия несколько повторяющихся записей. Для этого надо войти в режим таблицы, выбрать нужную таблицу (ту, по которой создавался запрос) и внести данные с повтором.

10.  Далее в окне База данных… открыть вкладку Запрос и выбрать Запрос1. На экране должно появиться окно Запрос Выборка.

11.  Закройте Запрос И сохраните его с именем Запрос1, если он не был сохранен. Для этого в меню Файл выберите команду Сохранить запрос и в открывшемся окне укажите имя запроса.

12.  Создайте еще один запрос на повторяющиеся записи, но теперь не добавляйте поле к полям с повторяющимися значениями.

po-teme.com.ua

Видео: начало работы с запросами

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

Что такое запросы?

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

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

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

  • Просмотр данных с помощью запроса на выборку. Поиск и просмотр информации из одной или нескольких таблиц по указанным условиям, а также выбор подходящих значений. Например, вы можете найти все продукты компании Tailspin Toys.

  • Указание условий и мгновенный поиск. Вы можете создавать повторно используемые запросы, в которые каждый раз будете вводить новые условия поиска. Например, можно создать запрос, в который потребуется вводить имя поставщика для поиска его продуктов.

  • Обновление или добавление данных с помощью запроса. Вы можете запросить данные, а затем использовать результаты для автоматического ввода или обновления информации. Например, если компания Tailspin Toys добавит аббревиатуру «TT» перед названиями всех своих продуктов, с помощью запроса на обновление можно найти все ее продукты и добавить перед их названиями буквы «TT».

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

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

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

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

Создание запроса

  1. На вкладке Создание нажмите кнопку Мастер запросов.

  2. Выберите пункт Простой запрос и нажмите кнопку ОК.

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

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

    Если вы добавили числовое поле

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

    • Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 4.

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

      • Sum — запрос вернет сумму всех значений, указанных в поле.

      • Avg — запрос вернет среднее значение поля.

      • Min — запрос вернет минимальное значение, указанное в поле.

      • Max — запрос вернет максимальное значение, указанное в поле.

    • Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите для этой таблицы флажок Подсчет числа записей в (название таблицы).

      Если вы добавили поле со значениями даты или времени

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

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

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

  4. Укажите имя запроса.

  5. Укажите, хотите вы открыть запрос (в режиме таблицы) или изменить его (в режиме конструктора). Нажмите кнопку Готово.

Вам нужны дополнительные возможности?

Создание и выполнение запроса на обновление

Обучение работе с Excel

Обучение работе с Outlook

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

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

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

Например: «Сколько заказов разместила компания TailSpin Toys в прошлом месяце?»

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

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

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

В этом примере условия запроса сортируют результаты по компании TailSpin Toys за май.

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

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

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

Пока что мы закроем диалоговое окно Добавление таблицы.

Здесь указаны доступные типы запросов.

Запрос на выборку используется чаще всего. Он позволяет извлечь из данных нужные сведения.

С помощью запроса на создание таблицы можно выбрать записи из существующей таблицы и сохранить их как новый файл. Например, это удобно, если вы импортируете большой файл Excel и хотите разбить информацию на отдельные таблицы.

Следующие три запроса применяются к уже существующим данным.

Запрос на добавление дополняет данными существующие таблицы,

запрос на обновление изменяет существующие данные,

а запрос на удаление удаляет их.

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

Например, с его помощью можно отсортировать продажи по региону.

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

А вот что получается в результате. Мы видим, что этот запрос возвращает данные о продажах в каждом квартале.

С помощью запроса на объединение можно объединить несколько запросов на выборку в один. Это полезно, когда нужно отобразить данные из несвязанных источников.

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

При этом Access становится внешним интерфейсом, т. е. набором инструментов для управления большой базой данных.

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

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

Для этого откроем вкладку Создание и нажмем кнопку Мастер запросов.

Если вы не составляли запросы раньше, этот пример поможет вам во всем разобраться.

Выберите Простой запрос и нажмите кнопку ОК.

Выберите таблицу Номера телефонов, а затем — поля Клиент и Номер телефона.

Нажмите кнопку Далее.

Если хотите, имя запроса можно изменить.

Затем выберите этот элемент, чтобы отобразить результат,

и нажмите кнопку Готово.

Вот что у нас получилось.

Возможно, на данном этапе у вас возник ряд вопросов, например «Какой запрос мы только что создали?»

или «Как узнать, куда мы звоним: на рабочий телефон или факс?»

На них можно ответить, добавив к запросу дополнительные данные.

Чтобы изменить запрос, откроем конструктор. На вкладке Главная нажмите кнопку Режим и выберите Конструктор.

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

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

Чтобы добавить поле Тип и сделать список телефонов понятнее, просто перетащите его.

Чтобы увидеть результаты, на вкладке Конструктор нажмите кнопку «Выполнить».

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

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

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

support.office.com

Создание запроса на основе нескольких таблиц

В простейшем случае построение и использование запроса в Access заключается в выборе требуемых полей из таблицы, применении условий (если они нужны) и просмотре результатов запроса. Но чаще необходимо использовать данные, которые находятся в разных таблицах. К счастью, вы можете создавать запросы, объединяющие сведения из нескольких источников. В этой статье объясняется, когда следует получать данные сразу из нескольких таблиц и как это делать.

Выберите нужное действие

Уточнение данных в запросе с помощью данных из связанной таблицы

Объединение данных в двух таблицах с помощью их связей с третьей таблицей

Просмотр всех записей из двух похожих таблиц

Уточнение данных в запросе с помощью данных из связанной таблицы

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

Использование мастера запросов для построения запроса на основе главной и связанной таблицы

  1. Убедитесь, что для таблиц задано отношение в окно отношений.

    Инструкции

    1. На вкладке Работа с базами данных в группе Показать или скрыть выберите пункт Отношения.

    2. На вкладке Конструктор в группе Связи нажмите кнопку Все связи.

    3. Выберите таблицы, которые нужно связать.

      • Если таблицы отображаются в окне схемы данных, убедитесь, что отношение между ними уже установлено.

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

      • Если таблицы не отображаются в окне схемы данных, следует добавить их.

        На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Имена таблиц.

        Дважды щелкните каждую из таблиц, которые вы хотите отобразить, а затем нажмите кнопку Закрыть.

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

      Примечание: Создать отношение между полем с типом Тип данных "Счетчик" и полем, имеющим тип данных Числовой тип данных, можно в том случае, если это поле имеет размер "длинное целое". Это часто бывает так при создании отношение "один-ко-многим".

      Откроется диалоговое окно Изменение связей.

    5. Нажмите кнопку Создать для создания связи.

      Дополнительные сведения о параметрах, используемых при создании отношения, см. в статье Создание, изменение и удаление отношения.

    6. Закройте окно схемы данных.

  2. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов. Если вы используете Access 2007, на вкладке Создание в группе Другое нажмите кнопку Мастер запросов.

  3. В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.

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

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

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

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

  8. В группе Выберите подробный или итоговый отчет выберите вариант Подробный или Итоговый.

    Если не требуется использовать в запросе какие-либо агрегатные функции (Sum, Avg, Min, Max, Count, StDev или Var), выберите подробный запрос. В противном случае выберите вариант "Сводка". Выбрав параметры, нажмите кнопку Далее.

  9. Нажмите кнопку Готово для просмотра результатов.

Пример на основе базы данных "Борей"

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

Примечание: Этот пример подразумевает изменение учебной базы данных "Борей". Рекомендуем сделать ее резервную копию и выполнять инструкции, используя резервную копию.

Построение запроса с помощью мастера запросов
  1. Откройте учебную базу данных "Борей". Закройте форму входа.

  2. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов. Если вы используете Access 2007, на вкладке Создание в группе Другое нажмите кнопку Мастер запросов.

  3. В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.

  4. В поле со списком Таблицы и запросы выберите пункт Таблица: Заказы.

  5. В списке Доступные поля дважды щелкните пункт ИД_заказа, чтобы переместить это поле в список Выбранные поля. Дважды щелкните пункт Цена доставки, чтобы переместить это поле в список Выбранные поля.

  6. В поле со списком Таблицы и запросы выберите пункт Таблица: Сотрудники.

  7. В списке Доступные поля дважды щелкните пункт Имя, чтобы переместить это поле в список Выбранные поля. Дважды щелкните пункт Фамилия, чтобы переместить это поле в список Выбранные поля. Нажмите кнопку Далее.

  8. Так как вы создаете список всех заказов, следует использовать подробный запрос. Если нужно суммировать стоимость доставки заказов, выполненных сотрудником, или применить другую агрегатную функцию, следует использовать итоговый запрос. Выберите вариант Подробный (вывод каждого поля каждой записи) и нажмите кнопку Далее.

  9. Нажмите кнопку Готово для просмотра результатов.

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

К началу страницы

Объединение данных в двух таблицах с помощью их связей с третьей таблицей

Часто данные в двух таблицах связаны друг с другом через третью таблицу. Это может быть в том случае, когда данные в первых двух таблицах связаны отношение "многие-ко-многим". Хорошим приемом при проектировании баз данных является разбиение одной связи с отношением "многие-ко-многим" между двумя таблицами на две связи с отношением "один-ко-многим", в которых участвуют три таблицы. Это делается путем создания третьей (связующей) таблицы, в которой есть первичный ключ и внешний ключ для каждой из таблиц. Затем создается связь "один-ко-многим" между каждым внешним ключом связующей таблицы и соответствующим первичным ключом связуемой таблицы. В таких случаях следует включать в запрос все три таблицы, даже если вы хотите получить данные только из двух.

Создание запроса на выборку с использованием таблиц, связанных отношением "многие-ко-многим"

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов. Если вы используете Access 2007, на вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

    Откроется диалоговое окно Добавление таблицы.

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

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

  3. Дважды щелкните поля, которые вы хотите использовать в запросе. Каждое поле появится в бланк запроса.

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

  5. Чтобы отсортировать результаты по значениям поля, в бланке запроса в строке Сортировка для него выберите значение По возрастанию или По убыванию (в зависимости от того, в каком направлении вы хотите выполнить сортировку записей).

  6. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    Access выведет результаты запроса в режим таблицы.

Пример на основе базы данных "Борей"

Примечание: Этот пример подразумевает изменение учебной базы данных "Борей". Рекомендуем сделать ее резервную копию и выполнять инструкции, используя резервную копию.

Предположим, что у вас появилась новая возможность: поставщик из Рио-де-Жанейро нашел ваш веб-сайт и хочет с вами сотрудничать. Однако он работает только в Рио-де-Жанейро и Сан-Паулу. Компания поставляет все интересующие вас категории пищевых продуктов. Являясь довольно крупным предприятием, поставщик хочет, чтобы вы гарантировали достаточно большой рынок сбыта, который обеспечил бы ему годовые продажи объемом не менее 20 000 бразильских реалов (около 9 300 долларов США). Можете ли вы обеспечить требуемый рынок сбыта?

Данные, необходимые для ответа на этот вопрос, находятся в двух местах: в таблице "Клиенты" и в таблице "Сведения о заказе". Эти таблицы связаны друг с другом через таблицу "Заказы". Отношения между этими таблицами уже заданы. В таблице "Заказы" для каждого заказа может быть указан только один клиент, связанный с таблицей "Клиенты" по полю "ИДКлиента". Каждая запись в таблице "Сведения о заказе" связана только с одним заказом в таблице "Заказы" по полю "ИД_заказа". Таким образом, у каждого клиента может быть множество заказов, для каждого из которых есть несколько записей со сведениями.

В данном примере следует построить перекрестный запрос, в котором будут отображены годовые продажи в городах Рио-де-Жанейро и Сан-Паулу.

Открытие запроса в Конструкторе

  1. Откройте базу данных "Борей". Закройте форму входа.

  2. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов. Если вы используете Access 2007, на вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

    Откроется диалоговое окно Добавление таблицы.

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

    Все три таблицы появятся в рабочей области конструктора запросов.

  4. В таблице "Клиенты" дважды щелкните поле "Город", чтобы добавить его в бланк запроса.

  5. В бланке запроса в строке Условие отбора столбца Город введите In ("Рио-де-Жанейро","Сан Паулу). Это позволяет включить в запрос только записи о заказах клиентов из этих городов.

  6. В таблице "Сведения о заказе" дважды щелкните поля "ДатаИсполнения" и "Цена".

    Поля добавляются в бланк запроса.

  7. В столбце бланка запроса ДатаИсполнения выберите строку Поле. Замените [ДатаИсполнения] на Год: Format([ДатаИсполнения],"yyyy"). При этом будет создан псевдоним поля (Год), позволяющий использовать только значение года из даты, указанной в поле "ДатаИсполнения".

  8. В столбце бланка запроса Цена выберите строку Поле. Замените [Цена] на Продажи: [Сведения о заказе].[Цена]*[Количество]-[Сведения о заказе].[Цена]*[Количество]*[Скидка]. При этом будет создан псевдоним поля (Продажи), вычисляющий сумму продаж для каждой записи.

  9. На вкладке Конструктор в группе Тип запроса щелкните элемент Перекрестная таблица.

    В бланке запроса появятся две новые строки: Итоги и Перекрестная таблица.

  10. В столбце бланка запроса Город щелкните строку Перекрестная таблица, а затем щелкните Заголовки строк.

    Названия городов будут использоваться в качестве заголовков строк (т. е. запрос будет возвращать одну строку для каждого города).

  11. В столбце Год щелкните строку Перекрестная таблица, а затем щелкните Заголовки столбцов.

    Значения годов будут использоваться в качестве заголовков столбцов (т. е. запрос будет возвращать один столбец для каждого года).

  12. В столбце Продажи щелкните строку Перекрестная таблица, а затем щелкните элемент Значение.

    Значения продаж будут отображаться на пересечениях строк и столбцов (т. е. запрос будет возвращать одно значение продаж для каждого сочетания города и года).

  13. В столбце Продажи щелкните строку Итоги, а затем щелкните элемент Sum.

    Запрос будет суммировать все значения столбца.

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

  14. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Теперь у вас есть запрос, возвращающий общие годовые продажи по Рио-де-Жанейро и Сан-Паулу.

К началу страницы

Просмотр всех записей из двух похожих таблиц

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

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

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

Чтобы просмотреть все записи из двух таблиц с одинаковой структурой, используйте запрос на объединение.

Запросы на объединение невозможно отобразить в Конструкторе. Они создаются с помощью команд SQL, которые нужно вводить на вкладке объекта в режим SQL.

Создание запроса на объединение двух таблиц

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов. Если вы используете Access 2007, на вкладке Создание в группе Другие нажмите кнопку Конструктор запросов.

    Откроется бланк конструктора запроса и диалоговое окно Добавление таблицы.

  2. В диалоговом окне Добавление таблицы нажмите кнопку Закрыть.

  3. На вкладке Конструктор в группе Тип запроса нажмите кнопку Объединение.

    Запрос переключится из Конструктора в режим SQL. На данном этапе вкладка объекта в режиме SQL будет пуста.

  4. В режиме SQL введите SELECT и список полей первой таблицы, которые вы хотите включить в запрос. Имена полей должны быть заключены в квадратные скобки и разделены запятыми. Когда вы закончите вводить имена полей, нажмите клавишу ВВОД. Курсор переместится на одну строку вниз в окне режима SQL.

  5. Введите FROM и имя первой таблицы, включаемой в запрос. Нажмите клавишу ВВОД.

  6. Если вы хотите указать условие для поля первой таблицы, введите WHERE, имя поля, оператор сравнения (обычно знак равенства =) и условие. Можно добавлять дополнительные условия к концу предложения WHERE, используя ключевое слово AND и такой же синтаксис, как и для первого условия (например, WHERE [Уровень]="100" AND [Часов]>2). После завершения ввода условий нажмите клавишу ВВОД.

  7. Введите слово UNION и нажмите клавишу ВВОД.

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

  9. Введите FROM и имя второй таблицы, включаемой в запрос. Нажмите клавишу ВВОД.

  10. Если вы хотите, добавьте предложение WHERE, как описано в шаге 6.

  11. Введите точку с запятой (;), чтобы обозначить конец запроса.

  12. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    Результаты будут отображены в режиме таблицы.

К началу страницы

См. также

Объединение таблиц и запросов

support.office.com

Создание и выполнение запроса на обновление

Текстовый

Поле MEMO

255 первых знаков остаются, остальные удаляются.

Числовой

Нет ограничений.

Дата/время

Нет ограничений.

Денежный

Нет ограничений.

Счетчик

Нет ограничений.

Логический

Значение -1 ("Да" в логическом поле) преобразуется в "Да". Значение 0 ("Нет" в логическом поле) преобразуется в "Нет".

Гиперссылка

Access обрезает ссылки длиннее 255 знаков.

Поле MEMO

Текстовый

Нет ограничений.

Числовой

Нет ограничений.

Дата/время

Нет ограничений.

Денежный

Нет ограничений.

Счетчик

Нет ограничений.

Логический

Значение -1 ("Да" в логическом поле) преобразуется в "Да". Значение 0 ("Нет" в логическом поле) преобразуется в "Нет".

Гиперссылка

Нет ограничений.

Числовой

Текстовый

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

Поле MEMO

Поле МЕМО должно содержать только текст и допустимые разделители целой и дробной частей. Число знаков в поле МЕМО не должно превышать соответствующий размер поля, заданный для типа данных "Числовой".

Числовой (с другим размером поля или другой точностью)

Значения не должны быть больше или меньше, чем размер нового поля. Из-за изменения точности приложение Access может округлить некоторые значения.

Дата/время

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

Дата 30 декабря 1899 г. имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 г. до 11 сентября 1900 г., превышают размер поля "Байт". Даты, не входящие в интервал от 13 апреля 1810 г. до 16 сентября 1989 г., превышают размер поля "Целое".

Чтобы вместить все возможные даты, присвойте свойству Размер поля числового поля значение Длинное целое или больше.

Денежный

Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных "Денежный" можно преобразовать в поле "Целое" только в том случае, если его значение больше 255, но не превышает 32 767.

Счетчик

Значения не должны выходить за пределы размера, заданного для поля.

Логический

Значения "Да" преобразуются в -1. Значения "Нет" преобразуются в 0.

Дата/время

Текстовый

Исходный текст должен быть распознаваемой датой или сочетанием даты и времени, например "18-янв-2007".

Поле MEMO

Исходный текст должен быть распознаваемой датой или сочетанием даты и времени, например "18-янв-2007".

Числовой

Значение должно находиться в интервале от -657434 до 2958465,99998843.

Денежный

Значение должно находиться в интервале от -657434 ₽ до 2958465,9999 ₽

Счетчик

Значение должно находиться в интервале от -657434 до 2958466.

Логический

Значение -1 ("Да") преобразуется в 29 декабря 1899 г. Значение 0 ("Нет") преобразуется в полночь (00:00:00).

Денежный

Текстовый

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

Поле MEMO

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

Числовой

Нет ограничений.

Дата/время

Нет ограничений, но Access может округлить значение.

Счетчик

Нет ограничений.

Логический

Значение -1 ("Да") преобразуется в 1 ₽Значение 0 ("Нет") преобразуется в 0 ₽

Счетчик

Текстовый

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Поле MEMO

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Числовой

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Дата/время

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Денежный

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Логический

Не допускается, если поле с типом данных "Счетчик" является первичным ключом.

Логический

Текстовый

Исходный текст должен содержать только значения "Да", "Нет", "Истина", "Ложь", "Вкл" и "Выкл".

Поле MEMO

Исходный текст должен содержать только значения "Да", "Нет", "Истина", "Ложь", "Вкл" и "Выкл".

Числовой

Нуль и пустое значение преобразуются в значение "Нет", все остальные значения преобразуются в значение "Да".

Дата/время

Пустое значение и значение 00:00:00 преобразуются в значение "Нет", все остальные значения преобразуются в значение "Да".

Денежный

Нуль и пустое значение преобразуются в значение "Нет", все остальные значения преобразуются в значение "Да".

Счетчик

Все значения преобразуются в значение "Да".

Гиперссылка

Текстовый

Если исходный текст содержит допустимый веб-адрес, например adatum.com, www.adatum.com или http://www.adatum.com, он преобразуется в гиперссылку. Access пытается преобразовать и другие значения: текст становится подчеркнутым, а указатель мыши изменяется при наведении на ссылку, но эти ссылки не работают. Текст может содержать любое допустимое обозначение веб-протокола, в том числе http://, gopher://, telnet://, ftp:// или wais://.

Поле MEMO

См. предыдущую строку. Действуют те же ограничения.

Числовой

Не допускается, если поле с типом данных "Числовой" используется в связи. Если исходное значение представлено в форме допустимого IP-адреса (четыре тройки цифр, разделенных точками: nnn.nnn.nnn.nnn), а числа соответствуют веб-адресу, в результате преобразования получается действительная ссылка. В противном случае Access добавляет префикс http:// в начало каждого значения, и итоговые ссылки не работают.

Дата/время

В начало каждого адреса добавляется префикс http://, но итоговые ссылки практически никогда не работают.

Денежный

В начало каждого значения добавляется префикс http://, но, как и в случае с датами, итоговые ссылки практически никогда не работают.

Счетчик

Не допускается, если поле "Счетчик" используется в связи. В начало каждого значения добавляется префикс http://, но итоговые ссылки практически никогда не работают.

Логический

Все значения "Да" преобразуются в -1, а все значения "Нет" — в 0. В начало каждого значения добавляется префикс http://. Итоговые ссылки не работают.

support.office.com

Видео: создание простых запросов - Access

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

Создание запроса в режиме конструктора

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

  1. Откройте конструктор запросов.

  2. Добавление источников данных

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

    1. В диалоговом окне Добавление таблицы откройте вкладку Таблицы и запросы.

    2. Поочередно выбирайте каждый нужный источник данных и нажимайте кнопку Добавить.

    3. Закройте диалоговое окно.

  3. Добавление выходных полей

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

    Использование выражения в качестве выходного поля

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

    1. В пустом столбце бланка запроса выберите строку Поле.

    2. На вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель.

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

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

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

  4. Укажите условия (необязательно)

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

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

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

    2. Если содержимое поля не должно отображаться в результатах, снимите для этого поля флажок в строке "Вывод на экран".

    3. В строке Условие отбора введите выражение, которому должны удовлетворять значения в поле (если запись будет включаться в результаты). Пример: <10. (Другие примеры см. в статье Примеры условий запроса.)

    4. Укажите альтернативные условия в строке или под строкой Условие отбора.

    Если задать альтернативные условия, записи буду отбираться, когда значение поля будет удовлетворять хотя бы одному из указанных условий. Например, если задействовать поле Штат из таблицы клиентов и указать в качестве условия CA, а в строке или ввести ID и WA, будут отображаться записи клиентов, живущих в одном из этих трех штатов.

  5. Вычисление итоговых значений (необязательно)

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

    1. При необходимости добавьте в бланк запроса в нижней области строку Всего. В режиме конструктора на вкладке Конструктор найдите группу Показать или скрыть и нажмите кнопку Итоги.

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

  6. Запуск или сохранение запроса

    • Чтобы запустить запрос, на вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

    • Чтобы сохранить запрос и использовать его в дальнейшем, на панели быстрого доступа нажмите кнопку Сохранить . Введите описательное имя запроса и нажмите кнопку ОК.

Вам нужны дополнительные возможности?

Обучение работе с Excel

Обучение работе с Outlook

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

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

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

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

Наш запрос ответит на такой вопрос: «Сколько заказов разместила компания Tailspin Toys в прошлом месяце?»

Давайте приступим.

На ленте на вкладке Создание нажмите кнопку Конструктор запросов.

Запустится конструктор запросов.

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

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

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

Как видите, если запустить запрос сейчас, он возвращает все заказы всех клиентов, но вы сможете уменьшить количество результатов с помощью фильтров.

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

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

Первое правило — изучайте данные.

Чтобы понять, что имеется в виду, давайте откроем таблицу «Заказы»,

выберем на ленте элемент Поля,

а затем выделим поля в запросе.

Поле Дата заказа имеет тип данных «Дата/время»,

однако поле Клиенты — не текстовое: оно имеет тип данных «Число».

Из этого исходит второе правило: условия должны соответствовать типу данных в фильтруемом поле.

Например, в поле типа «Дата/время» можно ввести только значения даты, в поле типа «Число» — только числа и т. д.

Итак, как же определить, какое число отвечает TailSpin Toys?

Выберите Работа с базами данных > Схема данных. В области «Отношения» мы видим, что таблицы Клиенты и Заказы связаны полями «Код» и «Код клиента».

Выберите Работа с базами данных > Схема данных. В области «Отношения» мы видим, что таблицы Клиенты и Заказы связаны полями «Код» и «Код клиента».

Открыв таблицу «Клиенты», находим там TailSpin Toys и видим соответствующее значение идентификатора — 23.

Теперь давайте вернемся к запросу и введем значение 23 в строку «Условия» поля Код клиента.

Затем развернем поле Дата заказа и добавим пару логических операторов: between и and. Здесь мы вводим начальную дату, а здесь — конечную.

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

Запустив запрос, мы получим нужные результаты: только те заказы, которые компания TailSpin разместила в прошлом месяце.

А теперь давайте еще раз взглянем на конструктор запросов.

Видите эти флажки? Если их снять, соответствующее поле будет скрыто в результатах.

Поле все еще есть в запросе: оно просто не отображается в результатах.

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

Затем перейдите в бланке к строке «Сортировка» и выберите По возрастанию или По убыванию. Если выбрать «По возрастанию», возвращаются нижние элементы, «По убыванию» — верхние.

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

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

Теперь вернемся к конструктору.

Нажмите кнопку Итоги. Обратите внимание, что в бланке добавилась строка Итоги, а всем трем полям присвоено значение Группировка.

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

Для поля Количество устанавливаем значение Sum, а в поле Категория оставляем значение Группировка.

Мы также перемещаем поле Категория в самый левый столбец.

Запускаем запрос. Он подсчитывает количество проданных товаров в каждой категории.

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

Вы создали запрос на выборку с помощью конструктора запросов.

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

support.office.com

Основы создания запросов в Access 2003 | Info-Comp.ru

Сегодня мы начнем рассматривать такое приложение как - Microsoft Access 2003, которое умеет создавать собственные базы данных (формат mdb), а также создавать клиентские приложения к существующим базам на основе MS SQL Server. Темой сегодняшней статьи будет создание новых запросов из Access, имеется в виду, как простые запросы, так и различные функции, представления и процедуры. Под запросом здесь понимается объекты базы данных.

О Microsoft Access

Microsoft Access – программный продукт компании Microsoft, являющейся реляционной СУБД. Имеет огромные возможности при организации базы данных, создания отдельного приложения, которое может взаимодействовать с множеством других СУБД. Наиболее часто встречающееся решение клиент-сервер, где в качестве клиента выступает приложение, написанное в Access (язык VBA, формы и многое другое), а сервером является СУБД Microsoft SQL Server. Однако Access поддерживает и взаимодействие с другими СУБД, например, такими как: MySql или PostgreSQL. О Access можно разговаривать долго, но цель сегодняшней статьи именно создание запросов (объектов) из Access.

Переходим к практике и начнем с простой базы mdb, т.е. как там создать эти самые запросы.

Создание запросов в Microsoft Access 2003 - база MDB

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

Примечание! Имеется в виду, что база у Вас уже есть.

И перед Вами откроется новое окно выбора типа запроса

Давайте рассмотрим каждый из этих типов запросов подробней.

Типы запросов в Access 2003 - база MDB

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

Далее Вы просто выбираете нужные поля, ставите условия, сортировку и так далее.

Если не нравится это делать в графическом редакторе, то можете переключиться в режим SQL, для этого нажмите пункт меню «Вид», затем «Режим SQL».

Простой запрос – это, можно сказать, такой же конструктор, только немного другого вида и поменьше возможностей.

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

Повторяющееся записи – это как видно из названия поиск повторяющихся записей.

Записи без подчиненных – это поиск тех записей, которые отсутствуют в той или иной таблице.

С базами mdb достаточно, так как их редко используют на предприятиях, обычно используют следующую схему – пишут отдельный клиент, а все данные хранят на сервере с помощью СУБД в нашем случае - это MS SQL Server, а клиент Access (.adp).

Создание запросов в Microsoft Access 2003 - база MS SQL Server

Давайте рассмотрим создание новых запросов из клиента Access на базе MS SQL Server (подразумевается, что клиент adp и база данных на основе MS SQL Server у Вас уже есть).

Примечание! Данная статья не подразумевает изучение sql, поэтому на момент прочтения этой статьи Вы уже должны понимать основы sql и понятие основных объектов в базе данных таких как: представление, функция, процедура. Если Вы совсем новичок в этом, то сначала, конечно же, рекомендуется освоить SQL, так как многие термины ниже Вам будут не понятны. Рекомендуемые статьи:

Начало все такое же, открывает проект, затем нажимаем на объекты «Запросы» и жмем кнопку «Создать».

И теперь подробней.

Типы запросов в Access 2003 - база MS SQL Server

Конструктор встроенной функции – это, можно сказать, обычное представление, только в нее можно передавать параметры, затем выполняются какие-то запросы на сервере, и возвращается таблица. Это своего рода функция, которая возвращает данные в виде таблицы. К ней обращаются следующим образом (если говорить об sql):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

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

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

SELECT * FROM table WHERE kod = @par

После на панели в свойствах функции

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

Конструктор представления – это создание обычного представления, в просто народе «Вьюха».

Конструктор сохраненной процедуры – создание процедуры с помощью конструктора, принцип такой же, как и в вышеупомянутых функциях. Напомню процедура - это набор sql операторов, как на выборку, так и на изменение данных.

Ввод сохраненной процедуры – это создание процедуры с помощью текстового редактора, т.е. создание процедуры чисто вручную. В итоге то же самое, что и с помощью конструктора. При создании объектов в текстовом редакторе шаблон создания у Вас уже создается автоматически access-ом.

Ввод скалярной функции – это создание функции, которая возвращает значение. Создается с помощью текстового редактора.

Ввод табличной функции – это создание функции, которая вернет набор записей. Похожа на встроенную функцию.

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

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

Конечно же, все эти объекты Вы можете создать и на сервере с помощью, например, Enterprise Manager (устарел, сейчас SQL Server Management Studio), но мы сегодня рассматриваем возможность создания этих объектов из access клиента.

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

Похожие статьи:

info-comp.ru