Как сделать сумму в запросе access?

Итоговый запрос из базы данных Access

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

1. В окне базы данных щелкните на кнопке Запросы.

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

3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.

4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.

5. Выделите пункт Список и снова щелкните на кнопке Добавить.

6. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы. Списки полей двух таблиц, соединенные линией связи, появятся в окне конструктора.

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

Рис. 17.6 . Добавление таблицы

8. Перетащите поле Фамилия в ячейку Поле первого столбца конструктора.

9. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.

10. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

Рис. 17.7. Запрос с групповыми операциями

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

12. В той же ячейке четвертого столбца выберите пункт Мах.

13. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.

ТАБЛИЦА 17.1 . Групповые операции

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

14. Щелкните на кнопке Вид, чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса — это непонятные имена столбцов. Давайте скорректируем их.

15. Щелчком на кнопке Вид вернитесь в конструктор запроса.

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

17. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.

18. В первой строке пятого столбца бланка запроса введите Число контактов: Дата.

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

19. Снова щелкните на кнопке Вид.

20. Закройте запрос.

21. Для сохранения изменений структуры щелкните на кнопке Да.

22. В окне диалога Сохранение введите имя Итоговый запрос и щелкните на кнопке ОК.

Запросы в access

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

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

Можно легко обнаружить, является ли запрос обновляемым: при отображении результатов запроса в конце записей должна быть пустая строка, которая помечена значком звездочки (*) в области выделения записи слева. Тогда в эту строку можно вводить данные, которые создадут новую запись. Если такая строка отсутствует, добавлять записи в запрос и изменять значения полей запроса нельзя.

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

Основные отличия запросов от расширенного фильтра:

— используя реляционные связи, можно применять запрос к нескольким таблицам (запросам);

— на экран можно выводить только необходимые поля;

— в запросе можно переставлять поля в любом порядке;

— команды фильтра сохраняются временно, запрос хранится постоянно как объект базы данных;

— применение фильтра и сортировки возможно только в открытой таблице, запросе и форме, а запрос работает с таблицами и запросами, которые не надо открывать;

— в запросе можно выводить на экран только необходимые (по количеству или процентному соотношению) записи (например, для лучшей десятки продаж можно отсортировать сумму продаж по возрастанию, а в свойствах запроса «Набор значений» (в режиме конструктора) ввести число 10;

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

Обилие всяких кнопочек и настроек может постоянно сбивать вас с толку. Также может появиться страх при первом открытии программы.

Самым распространённым является запрос на выборку.

В строке условия отбора значение даты вводится, окруженное знаками #. Например, Between #01.01.2010# And #31.12.2010# — будут отобраны записи в диапазоне с 1 января по 31 декабря 2010 года.

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

При сортировке нескольких полей порядок сортировки идёт слева направо.

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

При операциях с числами программа использует математические знаки, например «+». Но при соединении текстовых полей знак «+» заменяется знаком «&» (амперсанд). Этот знак выполняет операцию конкатенации, т. е. соединяет между собой строки и подстроки, например, ФИО: [Фамилия] & » » & [Имя] & » » & [Отчество] (в кавычках заключена константа «пробел»).

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

При создании вычисляемого поля надо ввести название столбца, после него знак двоеточия, а затем вычисляемое выражение (как в вышеупомянутом примере с ФИО).

Для очистки запроса есть команда меню Правка – Очистить бланк.

Нельзя добавлять и изменять записи в запросах, если:

— две таблицы запроса связаны отношением «один-ко-многим» и в таблице «один» не задан первичный ключ;

— в запросе используются рекурсивные соединения (связь установлена между полями одной таблицы (запроса));

— в запросе применяются статистические функции SQL.

Условия, при которых можно добавить или обновить записи в запросе:

— таблица является единственной в запросе;

— таблицы в запросе связаны отношением «один-к-одному»;

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

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

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

Если хотим, чтобы запрос извлекал все записи, удовлетворяющие хотя бы одному из условий, одно условие надо ввести в строку «Условие отбора», а другое в строку «Или».

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

Групповые операции (перекрёстные запросы в access)

Аксесс довольно сложная программа. Это подтверждает тот факт, что в интернете можно найти массу информации по ней. Однако, вы знаете что на самом деле достаточно знать лишь 20% инструментов, чтобы создавать и настраивать 80% баз данных в программе? И научиться этому можно после изучения 40 специальных видеоуроков, в которых описана самая суть без воды.

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

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

По умолчанию строка «Групповая операция» в режиме конструктора скрыта.

Группировка

Инструкция «Группировка» разбивает результаты запроса по каждому уникальному значению поля (полей). Например, если в поле Страна встречается 20 раз Литва, 30 раз Польша, 50 раз Чехия, то при группировке по этому полю будет всего три записи – по одной на каждую страну. Если будем добавлять группировку в другие поля, то количество выбранных записей возрастёт, так как программа будет искать уникальное значение не одного, а нескольких полей (например, зададим группировку по странам и по поставщикам. В Литве пять поставщиков, а, следовательно, уникальных записей для Литвы уже будет пять, а не одна).

Читать еще:  Как сделать подстановку в access 2013?

Инструкция Группировка автоматически задаёт сортировку в алфавитном порядке. Для изменения порядка сортировки надо явно указать программе параметры в строке «Сортировка».

Управляющие запросы

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

Создание таблицы

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

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

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

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

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

Для создания архивной таблицы надо скопировать исходную таблицу и затем вставить её из буфера, скопировав при этом только структуру (без данных) таблицы.

Обновление

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

Добавление

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

Удаляет указанные записи в таблицах (одной или нескольких).

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

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

Запрос с параметром

Хотите узнать какие 35 инструментов нужно знать, чтобы научиться создавать базы данных в Аксесс?

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

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

Например, нам часто нужны сведения по сотрудникам, фамилия которых начинается с определённой буквы. Можно сделать около 30 запросов (для почти всех букв русского алфавита), чтобы получать требуемые данные, но это займёт много времени для создания запросов, загромоздит базу данных и вызовет путаницу. Вместо этого создадим один запрос для формирования списка сотрудников, который будет нас спрашивать, с какой буквы начинающиеся фамилии мы хотим видеть. В поле «Условие отбора» введём: Like [Введите первую букву фамилии]& «*». На самом деле, если введём букву «С», условие будет читаться Access как Like «С*». Знак амперсанда «&» указывает на необходимость сцепления введённой буквы с остальными символами искомой ячейки, так как «*» обозначает любое количество символов после «С».

Например, выражение Between [Начальная дата:] And [Конечная дата:] запросит ввести начальную и конечную даты и выдаст все записи, содержащиеся в этом диапазоне (программа распознает разные форматы, например: 01.01.2010 или 01,01,2010 или 01/01/2010). Но для этого в режиме конструктора через меню Запрос – Параметры (можно вызвать через контекстное меню) надо вызвать диалоговое окно «Параметры запроса». В столбце «Параметр» указать правильно название, например [Начальная дата:], а в столбце «Тип данных» указать требуемый тип, в нашем случае «Дата/время». Как правило, указываются параметры для числовых и полей дата/время.

Ещё пример: Like «. » & [Введите номер месяца, например, для марта — 03, для ноября — 11] & «. ». Программа попросит ввести номер месяца года и выдаст все записи, относящиеся к этому месяцу. Если в параметре ввести знак звёздочки «*», то будут выбраны дни рождений за все месяцы.

Запрос может не работать, если формат даты в условии задан 00.00.0000, а в настройках панели управления установлен 00/00/0000. Тогда надо вместо точек добавить ещё по одному вопросу.

Запрос на объединение таблиц

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

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

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

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

Собственный язык Access JetSQL имеет отличия от ANSI SQL.

Хотя большинство запросов создаются в режиме конструктора, Access хранит их в формате SQL (структурированном языке запросов). Чтобы увидеть режим SQL, надо выбрать Вид-Режим SQL.

Пример вычисления общей суммы в таблице базы данных Microsoft Access с использованием SQL -запроса. Компонент TDBText

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

В данной задаче, на примере таблицы Microsoft Access , вычисляется общая сумма с использованием SQL -запроса. Результат вычисления суммы заносится в компонент типа TDBText .

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

Условие задачи

Дана таблица, сформированная средствами СУБД Microsoft Access . Таблица содержит данные с начисленной заработной платой работников предприятия.

Таблица имеет следующую структуру.

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

Решение

  1. Построение формы.

Из панели инструментов Tool Palette нужно разместить на форме следующие компоненты (рис. 1):

– из вкладки “dbGo” компонент TADOConnection. Создается объект с именем ADOConnection1. Этот компонент нужен для связи других компонент с файлом базы данных;

– из вкладки “ Data Access ” компонент TDataSource. Создается объект с именем DataSource1. Этот компонент связывает таблицу базы данных ADOTable1 с компонентом визуализации данных DBGrid1;

– из вкладки « Data Access ” компонент типа TDataSource. Создается объект с именем DataSource2. Этот компонент нужен для связи компонента ADOQuery1 с компонентом DBText1;

– из вкладки “dbGo” компонент типа TADOTable. Создается объект с именем ADOTable1. Этот компонент соответствует таблице Workers базы данных;

– из вкладки «dbGo» компонент типа TADOQuery. Этот компонент нужен для формирования SQL-запроса и отображения результата этого запроса в компоненте TDBText;

– из вкладки “ Data Controls ” компонент типа TDataGrid. Создается объект с именем DBGrid1. Этот компонент отображает таблицу Workers базы данных;

– из вкладки « Data Controls ” компонент типа TDBText. Создается объект с именем DBText1. Этот компонент отображает результат SQL-запроса, который формируется в компоненте ADOQuery1.

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

Схема связей между компонентами изображена на рисунке 2.

Рис. 1. Компоненты формы

Рис. 2. Схема связей между компонентами программы

  1. Подключение базы данных. Свойство ConnectionString компонента ADOConnection1.

Процесс подключения приложения к базе данных Microsoft Access подробно описан здесь.

Приложение к базе данных подключается с помощью свойства ConnectionString компонента ADOConnection1 (рис. 3). В свойстве ConnectionString указывается тип поставщика данных и полный путь к файлу базы данных.

Рис. 3. Строка ConnectionString компонента ADOConnection1

  1. Настройка компонент формы.

Следующим шагом нужно осуществить настройку компонент между собой. Для этого нужно установить:

– в компоненте ADOConnection1 свойство LoginPrompt = “false” (запрет постоянного ввода имени пользователя и пароля при подключении к базе данных);

– в компоненте ADOTable1 свойство Connection = «ADOConnection1”;

– в компоненте ADOQuery1 свойство Connection = “ADOConnection1”;

– в компоненте DataSource1 свойство DataSet = “ADOTable1”;

– в компоненте DataSource2 свойство DataSet = «ADOQuery1”;

– в компоненте DBGrid1 свойство DataSource = “DataSource1”;

– в компоненте DBText1 свойство DataSource = “DataSource2”;

– в компоненте ADOTable1 свойство TableName = “Worker”;

– в компоненте DBGrid1 из свойства Options установить опцию dgEditing = false (запрет внесения данных в ячейки таблицы непосредственно из сетки DBGrid1).

  1. Свойство Active компонентаADOTable1.

Для отображения данных в DBGrid1 нужно выполнить следующие действия над компонентом ADOTable1 (рис. 4):

– выделить компонент ADOTable1;

– установить свойство Active в значение true.

После этого данные таблицы будут отображены в DBGrid1.

Читать еще:  Как сделать составную форму в access?

Рис. 4. Свойство Active компонента ADOTable1

  1. Настройка размеров компонент и формы.

На этом этапе осуществляется корректировка размеров и позиций компонент на форме согласно образцу, показанному на рисунке 5.

Рис. 5. Основная форма приложения

  1. Скрытие поля ID_Worker в DBGrid1.

Поле ID_Worker целесообразно скрыть, поскольку оно есть ключевым полем. Для этого из контекстного меню нужно вызвать редактор полей « Fields Editor ” компонента ADOTable1. Вызов редактора изображен на рисунке 6.

Рис. 6. Вызов редактора « Fields Editor ”

Откроется окно Form1.ADOTable1 . В этом окне, с помощью мышки, нужно вызвать контекстное меню. В контекстном меню выбрать команду « Add All fields ».

В результате окно редактора примет вид, как показано на рисунке 7.

Рис. 7. Редактор полей Form1.ADOTable1

В редакторе полей отображаются все поля таблицы Worker. Чтобы удалить поле ID_Worker нужно на строке ID_Worker сделать клик правой кнопкой «мыши» и в контекстном меню выбрать команду Delete. После этого можно закрыть редактора Form1.ADOTable1.

В результате, в таблице DBGrid1 будет отображено только два поля (рис. 8).

Рис. 8. Отображение таблицы Worker с двумя полями

  1. Установка в поле Salary фильтра для отображения с двумя знаками после запятой.

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

Выделить компонент ADOTable1. Вызвать редактора полей “Fields Editor… ” так как описано в пункте 6. В результате откроется список состоящий из двух полей Name и Salary. Выделить строку с названием Salary. В Object Inspector будет активирован объект с именем ADOTable1Salary.

Следующим шагом в Object Inspector в поле “ Display Format ” нужно установить значение « 0.00 » (рис. 9).

Рис. 9. Установка формата вывода в поле Salary объекта ADOTable1

После выполненных действий, значения в поле Salary таблицы будут выводиться с точностью 2 знака после запятой.

  1. Настройка компонента Label1.

В компоненте Label1 в свойстве Caption нужно ввести строку « Сумма = ».

  1. Свойство SQL компонента ADOQuery1.

Компонент DBGrid1 предназначен для вывода суммы на основе SQL -запроса. Сам SQL -запрос формируется в компоненте ADOQuery1 в свойстве « SQL… ” (рис. 10).

Рис. 10. Свойство SQL компонента ADOQuery1

После выбора этого свойства, вызовется редактор “ String List Editor ”, в котором нужно ввести текст SQL -запроса (рис. 11).

Для вычисления суммы нужно ввести следующий текст запроса:

После этого набранный текст запроса нужно подтвердить выбором команды (кнопки) «OK”.

Рис. 11. Текст SQL -запроса

В SQL -запросе будет вызвана функция агрегирования SUM, которая входит в синтаксис языка SQL. Функция SUM вычисляет сумму записей заданного столбца (столбца «Salary»). Также в SQL -запросе формируется новое поле с именем « Сумма ” в котором отображается результат суммы.

Функции агрегирования обеспечивают получение некоторой обобщенной информации.

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

– COUNT – выполняет подсчет записей в таблице или подсчет ненулевых значений в столбце таблицы;

– MIN – возвращает минимальное значение в столбце;

– MAX – возвращает максимальное значение в столбце;

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

  1. Свойство Active компонента ADOQuery1.

Как было сказано ранее, результат SQL -запроса отображается в компоненте DBText1. SQL -запрос формируется в компоненте ADOQuery1. Для того, чтобы SQL -запрос был доступен для отображения нужно в компоненте ADOQuery1 свойство Active установить в значение “true” (рис. 12).

Рис. 12. Свойство Active компонента ADOQuery1

  1. Свойство DataField компонента DBText1.

Компонент DBText1 предназначен для отображения только одного значения. Этим значением может быть результат функции агрегирования или значение текущей записи некоторого поля. Поэтому, в этом компоненте предусмотрено свойство DataField (“Поле данных»). В этом свойстве указывается поле, которое должно выводиться в DBText1.

В нашем случае поле имеет название « Сумма ». Это название было введено в тексте SQL -запроса.

Рис. 13. Свойство DataField компонента DBText1

После установления поля DataField результат суммы отобразится в компоненте DBText1 (рис. 14).

Рис. 14. Отображение суммы в компоненте DBText1

  1. Установка вывода результата с точностью 2 знака после запятой в компоненте DBText1.

Поскольку компонент DBText1 получает данные от компонента ADOQuery1, то нужно настроить компонент ADOQuery1.

Последовательность шагов следующая.

Вызвать редактор полей “ Form1.ADOQuery1 ” компонента ADOQuery1 из контекстного меню (см. п. 7).

В редакторе полей вызвать контекстное меню и в этом меню выбрать команду « Add all fields ” (рис. 15).

Рис. 15. Команда « Add all fields ” из редактора полей Form1.ADOQuery1

В результате будет добавлено одно поле « Сумма », которое формируется в тексте SQL -запроса. Автоматически создается объект с именем ADOQuery1Сумма .

После выделения поля « Сумма », в Object Inspector нужно установить свойство DisplayFormat в значение « 0.00 » (рис. 16).

Рис. 16. Установка вывода результата с точностью 2 знака после запятой в DBText1

  1. Запуск приложения на выполнение.

Теперь можно запустить приложение на выполнение.

Как сделать сумму в запросе access?

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

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

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

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

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

3. Запрос на выборку с условием отбора

Сделайте запрос на выборку с применением условия отбора на основе таблицы Заказы на работы и дайте ему имя Выполняемые заказы. В структуру запроса включите следующие поля: Номер заказа, Код клиента, Код сотрудника, Дата завершения. В столбце Дата завершения и в строке Условие отбора введите условие, по которому будут отбираться записи, дата исполнения которых назначена после 30.09.03 Условие отбора будет иметь вид >#30.09.03#.

Сделайте запрос на выборку с применением условия отбора на основе таблицы Сотрудники и дайте ему имя Выбранные сотрудники. Структура запроса такая же, как и в таблице. Условие отбора Like “Б*” сформируйте при помощи построителя выражения. Для этого в поле Фамилия на строке Условие отбора щелкните правой кнопкой мыши для вывода контекстного меню и выберите пункт Построить. В открывшемся диалоговом окне Построитель выражений используйте кнопку Like и с клавиатуры введите “Б*”.Закройте окно и сохраните запрос.

4. Запрос на выборку с вычисляемыми полями

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

Необходимые ресурсы и дайте ему имя Сумма исполнителям. В структуру запроса включите следующие поля: Код заказа, Фамилия сотрудника, Часы, Ставка. Следующее поле сделайте вычисляемым. Установите указатель в это поле и нажмите SHIFT+F2, откроется диалоговое окно Область ввода. Введите следующее выражение: Стоимость:[Часы]*[Ставка].

Получите результирующую таблицу запроса и сохраните его.

5. Запрос на выборку с вычислением итоговых данных

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

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

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

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

Название оборудования, Количество, Цена. Введите новое вычисляемое поле Стоимость оборудования, результат которого есть произведение Количество на Цену. Установите групповые операции: Группировка в поля Название оборудования и Цена, Sum — во все остальные. Просмотрите результирующую таблицу кнопкой Запуск(!), затем вернитесь в режим конструктора и отмените вывод на экран поля Код заказа. Запишите результирующую таблицу запроса.

Читать еще:  Как сделать размер поля в access?

Запрос на изменения

Запрос на изменения позволяет, выполнив одну операцию, внести изменения во многие записи. Существует четыре типа запросов на изменения: запрос на создание таблицы, запрос на удаление записей, запрос на добавление и обновление записей.

Сделайте запрос на изменение с созданием новой таблицы. Исходными данными для этого запроса будет запрос, который вы создадите на основе таблицы Оборудование с этой же самой структурой. В условие отбора по полю Цена введите >10. Находясь в режиме конструктора, выберите режим создания таблицы.

Дайте имя таблице — Цена оборудования >10. Сохраните запрос под именем Цена оборудования. В ярлыке Запросы появится новый значок запроса, перед которым будет стоять восклицательный знак. Выделите этот запрос и нажмите кнопку Открыть. После этого во вкладке Таблицы создастся новая таблица. Перейдите во вкладку Таблицы, выделите вновь созданную таблицу и откройте и просмотрите ее.

Запрос с параметром

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

Работа с отчетами

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

1. Автоматическое создание отчета

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

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

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

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

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

3. Создание отчета при помощи Конструктора

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

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

Кроме этих разделов отчет должен еще содержать Заголовок и Примечание. Для их вывода в отчете используйте команды Отчет- Заголовок.

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

Надписи поместите так, чтобы они находились над полями в области данных.

В левую надпись введите текст Фамилия, а в правую — Сумма на руки. В область заголовка, используя тоже надпись, введите название Ведомость начисления заработной платы. А область примечаний используйте для вычисления итоговых данных. Для этого в область Примечаний поместите элемент управления Поле. Измените надпись в подписи на Общая сумма, а в пустое поле введите формулу =Sum([Sum-Стоимость]). Просмотрите отчет кнопкой Предварительный просмотр. Отчет должен представлять собой список сотрудников с причитающимися каждому определенной суммы денег и в конце отчета должна быть выведена общая сумма. Задайте вашему отчету цвет, шрифт, введите рисунок. Сохраните отчет под именем Ведомость.

Вычисляемые поля в запросе БД Access 2003

Вычисления в запросе БД Access 2003

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

Выражения могут содержать следующие элементы:

  • идентификаторы (имя поля и элемента управления, которые заключаются в квадратные скобки);
  • операторы (арифметические, логические, сравнения и другие операторы);
  • функции (готовые формулы, которые состоят из имени и аргумента, помещенного в круглые скобки)
  • константы (элементы, которые не изменяются в Выражении, например Null, Истина, Ложь);
  • значения (например, значения даты и времени, численные положительные или отрицательные значения).
  • =[Оценка]/1,2, где «=» — опрератор, [Оценка] — имя поля, а 1,2 — значение;
  • Date(), где Date — имя функции текущей даты, которая не имеет аргумента.

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

Рассмотрим создание вычисляемого поля в бланке запроса на примере базы данных Training_students_VP. Постановка задачи: в запросе на выборку (Запрос 3) создать поле, в котором должны отображаться итоговые оценки (ниже на 20% от полученных по результатам рейтинга). Для решения этой задачи откроем бланк «Запроса 3» в режиме конструктора (Рис. 1).

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

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

Для поставленной задачи в Построитель можно ввести выражение =[Оценка]/1,2 с клавиатуры (Рис.2) и щелкнуть на кнопке ОК.

В результате в бланке запроса появится вычисляемое поле =[Оценка]/1,2

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

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

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

© Обучение в интернет, .
Обратная связь

Ссылка на основную публикацию
Adblock
detector