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

Как создать многозначный запрос CrossTab в Access 2013?

Мой вопрос

Я работаю в Access 2013. У меня есть набор данных, которые нужно разбивать на основе двух полей (лучше всего сделать с кросс-табличным запросом). Моя проблема: мне нужно показать SUM и COUNT каждого поля Value (), и, к сожалению, Access еще не разрешил многозначные кросс-таблицы.

Для справочных целей, если кто-то ищет в Интернете аналогичные проблемы — возникшая ошибка, если вы попытаетесь добавить несколько полей «Значение» в Access:

Чтобы создать запрос кросс-таблицы, вы должны указать один или несколько параметров заголовка строки, один параметр заголовка столбца и один параметр Value

Исправление проблем

Я читал многочисленные статьи о том, как это сделать, включая UNION, JOINs и условные агрегаты, но пока ничего не получилось.

На данный момент у меня есть два FUNCTIONAL кросс-таблицы запросов… один, который возвращает 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 = TOTAL Количество записей по месяцам. Столбец 3 = ОБЩАЯ сумма поля , по месяцам.

Любая помощь, получающая значения поворота SUM и COUNT в одной таблице запросов, будет с благодарностью!

Примеры данных

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

CrossTab «Количество» Результат запроса

Month of Service Quantity DENIED OPEN PAID
2011-12 1 1
2012-02 1 1
2012-05 1 1
2014-09 21 1 2 18

Моя цель состоит в том, чтобы просто объединить две таблицы… сохраняя «Месяц службы» в качестве левого столбца, а затем просто располагать столбцами «Количество», «Отклонено», «Открытое количество» и «Платный Qty», столбцы «Гросс-сборы», «Отклонено», «Открыть Amt», «Paid Amt» — все в зависимости от месяца обслуживания.

Мой SQL

CrossTab «Amt» Query

TRANSFORM Sum(.) AS
SELECT Format(,»yyyy-mm») AS , Sum(.) AS
FROM
GROUP BY Format(,»yyyy-mm»)
PIVOT .myStatus;

QuartTab «Qty» Query

TRANSFORM Count(.) AS
SELECT Format(,»yyyy-mm») AS , Count(.) AS
FROM
GROUP BY Format(,»yyyy-mm»)
PIVOT .myStatus;

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

Последнее, что вам нужно учитывать при разработке запроса, — это то, как вы связываете или присоединяетесь к столам, с которыми работаете. Когда вы добавляете две таблицы в запрос Access, это то, что вы увидите в области « Связывание объектов» :

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

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

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

Что вы замечаете, когда смотрите эти списки? Каждый заказ в таблице « Заказы» связан с кем-то в таблице « Клиенты» — клиентом, который разместил этот заказ. Однако, когда вы смотрите таблицу Customers, вы увидите, что клиенты, разместившие несколько заказов, связаны более чем с одним заказом, а те, кто никогда не размещал заказ, не привязаны к никаким заказам. Как вы можете видеть, даже когда две таблицы связаны, возможно иметь записи в одной таблице, которые не имеют отношения к какой-либо записи в другой таблице.

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

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

Поскольку наше соединение началось с таблицы Customers , наш запрос будет включать записи для всех наших клиентов, включая тех, кто никогда не размещал заказы. Это больше информации, чем мы хотим! Мы только хотим , чтобы увидеть записи для клиентов , которые разместили заказы .

К счастью, мы можем исправить эту проблему, изменив направление линии соединения. Если мы присоединяемся к таблицам справа налево , Access сначала получит все заказы из правой таблицы, которая является нашей таблицей Orders :

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

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

Теперь, когда мы понимаем, какое направление соединения нам нужно использовать, мы готовы построить наш запрос!

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

Вот почему важно всегда пересматривать соединения между вашими таблицами перед созданием запроса

2.3. Вычисления в запросе

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

2.3.1. Типы
выражений в Access

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

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

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

В качестве составляющих выражения (его
элементов) выступают Операторы
Имена объектов, Функции, Литералы, Константы.

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

О Microsoft Access

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

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

Ключевое поле

Ключевое поле

Это та запись, которая определяет запись в таблице.

Нажимаем в колонке слева на названии таблицы Читатель. Справа появилась таблица. Правой кнопкой нажимаем на названии – конструктор – в пустом поле пишем код читателя.

Сделаем это поле ключевым (на панели задач – ключевое поле) и закроем таблицу.

Это первичный ключ. Для ключевых полей используют тип – счетчик или числовой.

Определим ключевое поле для каждой таблицы аналогично предыдущей.

Книги – код книги.

Издательство – код издательства (тип данных –мастер подстановок – Издательство- выберите поле код и наименование).

Выдача – код выдачи (код читателя – таблица Читатель /код читателя и фамилия/ и код книги – таблица Книги/ код книги и название).

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

Связывание таблиц

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

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

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

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

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

Аналогично свяжем две другие таблицы.

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

Сохраняем, закрываем.

Теперь Код читателя таблицы Читатель переносим на Код читателя таблицы Выдача.

Ставим везде галочки — создать. Появилась связь (читатель берет много книг).

Теперь свяжем таблица Книги и Выдача. Для этого в таблицу Выдача добавим Код книги. И проделаем те же манипуляции.

Заполнение таблиц

Берем таблицу Читатель. Код читателя ставим на первое место. Нумерация будет автоматическая в этом поле. Вводим остальные данные (не менее 10) и сохраняем правой кнопкой.

Заполняем остальные таблицы по аналогии.

Установка первичного ключа

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

счетчик, простой ключ и составной ключ.

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

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

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

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

Создание и использование запроса на удаление в СУБД Access

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

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

Для того чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных записей (Cascade Delete Related Records). Такой флажок установлен, например, для связи таблиц «Заказы» (Orders) и «Заказано» (Order Details).

Откройте этот запрос в режиме Конструктора.Чтобы преобразовать запрос на добавление в запрос на удаление записей, выберите команду Запрос, Удаление (Query, Delete Query). В бланке запроса появится строка Удаление (Delete).

В первом столбце строки Удаление (Delete) показывается значение Из (From), которое указывает, что будут удаляться записи из таблицы «Заказы». Во втором столбце строки Удаление (Delete) вы видите значение Условие (Where), что указывает на использование этого столбца для определения критерия отбора удаляемых записей.

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

В этот момент еще можно отменить удаление, для чего достаточно нажать кнопку Нет (No) в окне сообщения. Нажмите кнопку Да (Yes), подтверждая удаление. Будут удалены все заказы за 1996 год из таблицы «Заказы» (Orders) и все позиции заказов из таблицы «Заказано» (Order Details).

Вы можете убедиться в этом, если откроете таблицу «Заказано».Сохраните запрос, дав ему имя: Удаление заказов.

Создание и использование запроса на создание новой таблицы в СУБД Access

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

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

Процесс создания запроса на создание таблицы состоит из следующих основных этапов.

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

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

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

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

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

Вставка рисунка или объекта

Создание других таблиц для этой базы данных — аналогичное. 

Создайте еще 5 таблиц самостоятельно.

Вставка в запись рисунка или объекта

Рисунок или объект добавляется из имеющегося файла либо создается в приложении OLE (например, в MS Paint), а затем вставляется в текущую запись.

Рассмотрим размещение объекта OLE на примере поля Фотография начальника в таблице Преподаватели. Фотографии хранятся в формате графического редактора Paint в файлах с расширением .bmp. Если рисунка в вашем файле нет, то создайте его самостоятельно и сохраните.

  1. В окне базы данных установите курсор на таблице Преподаватели и нажмите кнопку Открыть
  2. Заполните строки (записи) открывшейся таблицы данными в соответствии с названиями столбцов (полей)
  3. Для размещения поля Фотография начальника выполните внедрение объекта OLE в файл базы данных. Установите курсор в соответствующее поле таблицы. Выполните команду меню Вставка|Объект
  4. В окне Вставка объекта выберите тип объекта Paintbrush Picture и установите флажок Создать из файла
  5. В этом окне можно ввести имя файла, содержащего фотографию.
  6. Для просмотра внедренного объекта установите курсор в соответствующее поле и дважды щелкните кнопкой мыши
  7. Чтобы вернуться из программы Paint, выполните команду Файл|Выход и возврат к таблице Преподаватели.
Размещение данных типа МЕМО в таблице

В таблице ПРЕДМЕТ предусмотрено поле ПРОГРАММА, которое будет содержать длинный текст – краткую программу курса. Для такого поля выберите тип данных ПолеМЕМО.

Когда сохранять запросы

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

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

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

2.4. Microsoft Access 2007

2.4.5. Создание запросов и поиск информации в базе данных

В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.

В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).

Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.

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

На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.

Рис. 1.

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

Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).

Рис. 2.

Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.

Рис. 3.

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

Рис. 4.

Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.

Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.

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

Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).

Рис. 5.

Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).

Рис. 6.

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

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

Рис. 7.

Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).

Рис. 8.

В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.

Далее >>> Раздел: 2.4.6. Создание форм для ввода данных в таблицы базы данных Access 2007

Простейшая база данных

База данных (БД) — это систематизированное хранилище информации, которая может относиться к различным сферам человеческой деятельности.

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

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

Создайте базу данных, содержащую сведения об учащихся колледжа.

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

        Для формирования структуры таблицы выполнить: Таблицы → Создать и выбрать режим Конструктор. Создание таблицы, то есть определение входящих в неё полей, производится путём заполнения специальной таблицы (рис. 1)

Поле

Тип данных

Описание

………………………………………………………………………………….

Рис. 1

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

Откроем базу данных STUD, как было рассмотрено в ЛР1. Создадим запрос, выводящий информацию о студентах, у которых имеются задолженности.

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

Открывшееся окно конструктора запросов состоит из двух частей: верхняя содержит списки полей выбранных таблиц, а нижняя — бланк QBE для создания запроса. Каждый столбец бланка описывает одно поле, участвующее в запросе.

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

перетащив их в бланк QBE . Рассмотренным выше методом перетащите из таблицы “Студенты” поле Фамилия.

Запрос “Задолженность” будет иметь вид, как показано на рисунке. Установка связей между таблицами производится автоматически, используя структуру связей, созданную при генерации проекта БД. Можно задавать другие варианты связи таблиц и иные типы связей (внешнее объединение, «один-к-одному», «один-ко-многим» и т.д.). Изменение связей производится в верхней части окна выбором связанного поля в описании одной таблицы и транспортировкой его при нажатой кнопке мышки на описание соответствующего поля связанной таблицы. Тип связи можно изменить, активизировав ее щелчком мышки на линии связи.

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

Сбросим для этого поля флажок «Показать», запрещающий вывод данного поля в выборке (т.к его не обязательно выводить). Кроме стандартных операторов сравнения ‘=’, ‘ ‘, ‘ =’, Access поддерживает также BEETWEN, IN, LIKE. В запросе могут присутствовать т.н. вычисляемые поля — вычисленные значения над любыми полями таблицы. Access поддерживает большое число функций и операторов, применяемых при генерации вычисляемых полей. Чтобы просмотреть результат запроса необходимо на панели нажать кнопку:

Изменить заголовок можно также активизировав столбец с описанием поля; а затем выполнив команду «Свойства» меню «Вид», ввести в строку «Подпись поля» его название.

Строки итоговой таблицы желательно отсортировать по полю «Фамилия» таблицы «Студенты». Для этого в столбце с описанием данного поля в строке «Сортировка» выберем пункт «по возрастанию». При необходимости сортировки по нескольким полям Access сортирует данные в порядке их расположения в бланке QBE. После просмотра запроса видно, что необходимо ввести поле Имя из таблицы “Студенты”, т.к фамилии повторяютя и запрос не несет необходимой информации. Чтобы вставить поле, перетяните его в сетку QBE на место, где он должен находится и все остальные поля передвинуться на одну позицию в право. Запустить полученный запрос на выполнение можно также командой «Выполнить» меню «Запрос». Проверим полученные результаты на соответствие критериям отбора. Сохраним полученный запрос под именем «Задолженности». Запрос представляет собой таблицу:

Создадим запрос, в котором будет вычисляться дополнительное поле. Кафедра вычислительной техники решила своим работникам к новому году выплатить премию в размере 10% от зарплаты. Создадим запрос на базе таблицы “Преподаватели”, с полями Фамилия, Кафедра, Должность, Зарплата. Чтобы создать вычисляемое поле “Премия”, выводящее информацию о величине премии работнику, в новом столбце (следующим за заполненным), в строке “Поле” введем выражение Зарплата*0,1. Изменим заголовок поля, введя перед выражение его название. Ячейка будет содержать: «Премия: *0,1».

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

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

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

Чтобы создать запрос с несколькими таблицами:

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

В появившемся диалоговом окне « Показать таблицу » выберите каждую таблицу, которую вы хотите включить в свой запрос, затем нажмите « Добавить» . После того, как вы добавили все нужные таблицы, нажмите « Закрыть» . Когда мы планировали наш запрос, мы решили, что нам нужна информация из таблицы 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
Добавить комментарий

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

Adblock
detector