Подсчет данных при помощи запроса
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
В данной статье описано использование агрегатной функции для суммирования данных в результатах запроса. В ней также кратко описывается использование других агрегатных функций, например COUNT и AVG, для подсчета или вычисления средних значений в результирующем наборе записей. Кроме того, в этой статье рассматривается использование строки итогов — возможности Access, позволяющий суммировать данные без изменения структуры запросов.
Выберите нужное действие
-
Общее представление о способах суммирования данных
-
Подготовка примера данных
-
Суммирования данных с помощью строки итогов
-
Вычисление общих итогов с помощью запроса
-
Вычисление итогов по группе с помощью итогового запроса
-
Суммирование данных из нескольких групп с помощью перекрестного запроса
-
Справочные сведения об агрегатных функциях
Общее представление о способах суммирования данных
Просуммировать числовой столбец в запросе можно с помощью агрегатной функции. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. В Access существует множество агрегатных функций, включая Sum, Count, Avg (для вычисления среднего значения), Min и Max. Суммирование данных производится путем добавления в запрос функции Sum, подсчет данных — путем использования функции Count и т. д.
Кроме того, в Access предусмотрено несколько способов добавления функции Sum и других агрегатных функций в запрос. Вы можете:
-
Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов — возможность Access, позволяющая использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.
-
Создать итоговый запрос. Итоговый запрос вычисляет промежуточные итоги для групп записей, а строка итогов — общие итоги для одного или нескольких столбцов (полей) данных. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж.
-
Создать перекрестный запрос. Перекрестный запрос — это особый тип запросов, отображающий результаты в сетке, напоминающей лист Excel. Перекрестные запросы суммируют значения и затем группируют их по двум наборам фактов — вдоль боковой стороны (заголовки строк) и в верхней части (заголовки столбцов). Например, вы можете использовать перекрестный запрос для отображения итоговых значений продаж для каждого города за последние три года, как показано в таблице:
Город | 2003 | 2004 | 2005 |
---|---|---|---|
Краснодар |
254 556 |
372 455 |
467 892 |
Санкт-Петербург |
478 021 |
372 987 |
276 399 |
Москва |
572 997 |
684 374 |
792 571 |
. .. |
… |
… |
… |
Примечание: Ниже в разделах этой статьи подробно описано применение функции Sum, однако следует помнить, что вы можете использовать другие агрегатные функции в строках итогов и запросах. Дополнительные сведения об использовании других агрегатных функций см. ниже в разделе Справочные сведения об агрегатных функциях.
Дополнительные сведения о способах использования других агрегатных функций см. в разделе Отображение итогов по столбцу в таблице.
В следующих разделах описано, как добавить строку итогов, использовать итоговый запрос для суммирования данных и перекрестный запрос, вычисляющий промежуточные итоги по группам и интервалам времени. Помните, что многие агрегатные функции работают только с данными в полях, имеющих определенный тип данных. Например, функция SUM работает только с типами данных «Число», «Действительное» и «Денежный». Дополнительные сведения о типах данных, требуемых для каждой функции, см. ниже в разделе Справочные сведения об агрегатных функциях.
Общие сведения о типах данных см. в статье Изменение типа данных для поля.
К началу страницы
Подготовка примера данных
В инструкциях этой статьи приводятся таблицы с примерами данных. Они помогают понять, как работают агрегатные функции. Вы можете добавить примеры таблиц в новую или существующую базу данных.
В пошаговых инструкциях этого раздела объясняется, как вводить данные вручную на пустой лист, а также как копировать примеры таблиц в редактор электронных таблиц и затем импортировать их в Access. Дополнительные сведения о создании и импорте текстовых данных см. в статье Импорт данных или связывание с данными текстового файла.
В пошаговых инструкциях в этой статье используются приведенные ниже таблицы. Создайте пример данных на их основе:Таблица «Категории»
Категория |
---|
Куклы |
Игры и головоломки |
Картины и рамы |
Видеоигры |
DVD-диски и фильмы |
Модели для сборки, хобби |
Спортивное снаряжение |
Таблицы «Товары»
Наименование товара | Цена | Категория |
---|---|---|
Фигурка программиста |
12,95 ₽ |
Куклы |
Эксперименты с C# (игра для всей семьи) |
15,85 ₽ |
Игры и головоломки |
Схема реляционной базы данных |
22,50 ₽ |
Картины и рамы |
Волшебная микросхема (500 деталей) |
32,65 ₽ |
Игры и головоломки |
Доступ! Игра! |
22,95 ₽ |
Игры и головоломки |
Компьютерные маньяки и мифические животные |
78,50 ₽ |
Видеоигры |
Приступить к вашему компьютеру! С DVD-диска! |
14,88 ₽ |
DVD-диски и фильмы |
Неуловимая летающая пицца |
36,75 ₽ |
Спортивное снаряжение |
Внешний дисковод гибких дисков 5. 25» (масштаб 1:4) |
65,00 ₽ |
Модели для сборки, хобби |
Недвижущаяся фигурка бюрократа |
78,88 ₽ |
Куклы |
Тьма |
53,33 ₽ |
Видеоигры |
Собери клавиатуру |
77,95 ₽ |
Модели для сборки, хобби |
Таблица Заказы
Дата заказа | Дата отгрузки | Город назначения | Стоимость доставки |
---|---|---|---|
14. 11.2005 |
15.11.2005 |
Jakarta (Джакарта) |
55,00 ₽ |
14.11.2005 |
15.11.2005 |
Сидней |
76,00 ₽ |
16.11.2005 |
17.11.2005 |
Сидней |
87,00 ₽ |
17.11.2005 |
18.11. 2005 |
Jakarta (Джакарта) |
43,00 ₽ |
17.11.2005 |
18.11.2005 |
Париж |
105,00 ₽ |
17.11.2005 |
18.11.2005 |
Новосибирск |
112,00 ₽ |
18.11.2005 |
19.11.2005 |
Вена |
215,00 ₽ |
19. 11.2005 |
20.11.2005 |
Владивосток |
525,00 ₽ |
20.11.2005 |
21.11.2005 |
Иркутск |
198,00 ₽ |
20.11.2005 |
21.11.2005 |
Краснодар |
187,00 ₽ |
21.11.2005 |
22.11. 2005 |
Санкт-Петербург |
81,00 ₽ |
23.11.2005 |
24.11.2005 |
Москва |
92,00 ₽ |
Таблица Сведения о заказах
Идентификатор заказа | Наименование товара | Код товара | Цена за единицу | Количество | Скидка |
---|---|---|---|---|---|
1,1 |
Собери клавиатуру |
12 |
77,95 ₽ |
9 |
5% |
1,1 |
Недвижущаяся фигурка бюрократа |
2 |
78,88 ₽ |
4 |
7,5% |
2 |
Приступить к вашему компьютеру! С DVD-диска! |
7 |
14,88 ₽ |
6 |
4% |
2 |
Волшебная микросхема |
4 |
32,65 ₽ |
No8 |
до |
2 |
Компьютерные маньяки и мифические животные |
6 |
78,50 ₽ |
4 |
до |
3 |
Доступ! Игра! |
5 |
22,95 ₽ |
5 |
15% |
4 |
Фигурка программиста |
1,1 |
12,95 ₽ |
2 |
6% |
4 |
Неуловимая летающая пицца |
No8 |
36,75 ₽ |
No8 |
4% |
5 |
Внешний дисковод гибких дисков 5. 25» (масштаб 1:4) |
9 |
65,00 ₽ |
4 |
10% |
6 |
Схема реляционной базы данных |
3 |
22,50 ₽ |
12 |
6,5% |
7 |
Тьма |
11 |
53,33 ₽ |
6 |
8% |
7 |
Схема реляционной базы данных |
3 |
22,50 ₽ |
4 |
9% |
Примечание: Помните, что в типичной базе данных таблица «Сведения о заказах» будет содержать только поле «Код товара» (без поля «Наименование товара»). В данном примере поле «Наименование товара» используется для упрощения восприятия данных.
Ввод примеров данных вручную
-
на вкладке Создание в группе Таблицы нажмите кнопку Таблица.
Access добавит в базу данных новую пустую таблицу.
Примечание: Эту операцию следует выполнять только при необходимости добавить таблицу в базу данных. При открытии новой пустой базы данных это действие не требуется.
-
Дважды щелкните первую ячейку в строке заголовков и введите имя поля из примера таблицы.
По умолчанию в Access пустые поля обозначаются надписью Добавить поле в строке заголовков:
-
С помощью клавиш со стрелками перейдите в следующую пустую ячейку заголовка и введите имя второго поля (чтобы перейти в другую ячейку, можно также нажать клавишу TAB или щелкнуть эту ячейку два раза). Повторите эти действия, чтобы ввести имена всех полей.
-
Введите данные в пример таблицы.
По мере ввода данных Access определяет их тип для каждого поля. Если вы плохо знакомы с реляционными базами данных, для каждого поля таблицы следует задать конкретный тип данных, например «Число», «Текст» или «Дата/время». Это обеспечивает точный ввод данных и помогает предотвратить ошибки, например использование цифр номера телефона в вычислениях. Для этих примеров таблиц можно определить тип данных автоматически.
-
Завершив ввод данных, нажмите кнопку Сохранить.
(Сочетание клавиш: нажмите CTRL+S.)
Откроется диалоговое окно Сохранение документа.
-
В поле Имя таблицы введите имя примера таблицы и нажмите кнопку ОК.
Следует использовать указанные имена таблиц, потому что они применяются в запросах, приведенных в пошаговых инструкциях.
-
Повторяйте эти шаги, пока не создадите каждый из примеров таблиц, приведенных в начале этого раздела.
Если вы не хотите вводить данные вручную, можно выполнить указанные ниже действия для копирования информации в файл электронной таблицы, а затем импортировать данные из него в Access.
Создание листов с примерами данных
-
Запустите редактор электронных таблиц и создайте пустой файл. Если вы используете Excel, по умолчанию создается пустая книга.
-
Скопируйте первый пример таблицы и вставьте его на первый лист, начиная с первой ячейки.
-
Присвойте листу имя с помощью функций редактора электронных таблиц. Оно должно совпадать с именем примера таблицы. Например, если пример называется Категории, присвойте листу это же имя.
-
Повторяйте шаги 2 и 3, чтобы скопировать каждый пример таблицы на пустой лист и переименовать этот лист.
Примечание: К файлу электронной таблицы может понадобиться добавить листы. Сведения о том, как сделать это, см. в справке редактора электронных таблиц.
-
Сохраните книгу в нужной папке на компьютере или в сети и переходите к следующей процедуре.
Создание таблиц базы данных на основе листов
-
На вкладке Внешние данные в группе Импорт щелкните Excel.
-или-
Нажмите кнопку Дополнительно, а затем выберите редактор электронных таблиц из списка.
Откроется диалоговое окно Внешние данные — лист <имя программы>.
-
Нажмите кнопку Обзор, откройте файл электронной таблицы, созданный на предыдущих этапах, и нажмите кнопку ОК.
Откроется окно мастера импорта электронных таблиц.
-
По умолчанию мастер выбирает первый лист в книге (в этом примере — лист Клиенты), и данные из этого листа появляются в нижней части страницы мастера. Нажмите кнопку Далее.
-
На следующей странице мастера выберите Первая строка содержит названия столбцов, а затем нажмите кнопку Далее.
-
Если нужно, вы можете изменить имена полей и типы данных или пропустить некоторые поля, воспользовавшись текстовыми полями и списками в группе Параметры поля. В противном случае нажмите кнопку Далее.
-
Оставьте параметр автоматически создать ключ выбранным и нажмите кнопку Далее.
-
По умолчанию Access использует имя листа для новой таблицы. Оставьте это имя или введите другое, а затем нажмите кнопку Готово.
-
Повторите шаги с 1 по 7 для каждого листа книги Excel, чтобы создать для него таблицу.
Переименование полей первичного ключа
Примечание: При импорте листов Access автоматически добавляет в каждую таблицу столбец первичного ключа и по умолчанию присваивает ему имя «Код» и тип данных «Счетчик». В этом разделе даны инструкции по переименованию полей первичного ключа. Это позволяет четко определить все поля в запросе.
-
В области навигации щелкните правой кнопкой мыши каждую таблицу, созданную на предыдущем шаге, и выберите команду Конструктор.
-
Для каждой таблицы найдите поле первичного ключа. По умолчанию Access присваивает каждому полю имя Код.
-
В столбце Имя поля каждого поля первичного ключа добавьте имя таблицы.
Например, вы должны переименовать поле ID таблицы Categories на «код категории», а поле для таблицы Orders — на «код заказа». В таблице «сведения о заказе» переименуйте поле на «Detail ID». В таблице Products (продукты) переименуйте поле на «код продукта».
-
Сохраните изменения.
В последующих ссылках на примеры таблиц в данной статье указываются поля первичного ключа, переименованные, как описано выше.
К началу страницы
Суммирования данных с помощью строки итогов
Чтобы добавить в запрос строку итогов, откройте его в режиме таблицы, добавьте строку, а затем выберите нужную агрегатную функцию, например Sum, Min, Max или Avg. В этом разделе объясняется, как создать простой запрос на выборку и добавить строку итогов. Не обязательно использовать примеры таблиц, представленные в предыдущем разделе.
Создание простого запроса на выборку
-
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
-
В диалоговом окне Отображение таблиц дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе, а затем нажмите кнопку Закрыть.
Выбранные таблицы отображаются в виде окон в верхней части конструктора запросов.
-
Дважды щелкните поля таблицы, которые вы хотите использовать в запросе.
Можно включить поля, содержащие описательные данные, например имена и описания, но следует обязательно добавить поле, содержащее числовые или денежные значения.
Каждое поле отображается в ячейке в бланке запроса.
-
Нажмите кнопку Выполнить для выполнения запроса.
Результаты запроса будут отображены в режиме таблицы.
-
При необходимости переключитесь в Конструктор и скорректируйте запрос. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Конструктор. После этого можно изменить запрос, добавив или удалив поля таблицы. Чтобы удалить поле, выберите столбец в бланке запроса и нажмите клавишу DELETE.
-
Сохраните запрос.
Добавление строки итогов
-
Убедитесь в том, что запрос открыт в режиме таблицы. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Режим таблицы.
-или-
Дважды щелкните запрос в области навигации. Запрос будет выполнен, а его результаты будут загружены в таблицу.
-
На вкладке Главная в группе Записи нажмите кнопку Итоги.
В таблице появится новая строка Итог.
-
В строке Итог щелкните ячейку в поле, по которому вы хотите вычислить сумму, и выберите в списке функцию Sum.
Скрытие строки итогов
Дополнительные сведения об использовании строки итогов см. в разделе Отображение итогов по столбцу в таблице.
К началу страницы
Вычисление общих итогов с помощью запроса
Общие итоги — это сумма по всем значениям столбца. Можно вычислять нескольких типов общих итогов, включая:
-
Простой общий итог, суммирующий значения одного столбца. Например, можно вычислить общую стоимость доставки.
-
Вычисляемый общий итог, суммирующий значения нескольких столбцов. Например, можно вычислить суммы продаж путем умножения цены нескольких товаров на число заказанных товаров, а затем просуммировав результирующие значения.
-
Общий итог за исключением нескольких записей. Например, можно вычислить сумму продаж только по последней пятнице.
В следующих разделах описано, как вычислить каждый из типов общих итогов. В инструкциях используются таблицы «Заказы» и «Сведения о заказах».
Таблица «Заказы»
Идентификатор заказа | Дата заказа | Дата отгрузки | Город назначения | Стоимость доставки |
---|---|---|---|---|
1,1 |
14.11.2005 |
15.11. 2005 |
Jakarta (Джакарта) |
55,00 ₽ |
2 |
14.11.2005 |
15.11.2005 |
Сидней |
76,00 ₽ |
3 |
16.11.2005 |
17.11.2005 |
Санкт-Петербург |
87,00 ₽ |
4 |
17. 11.2005 |
18.11.2005 |
Москва |
43,00 ₽ |
5 |
17.11.2005 |
18.11.2005 |
Краснодар |
105,00 ₽ |
6 |
17.11.2005 |
18.11.2005 |
Новосибирск |
112,00 ₽ |
7 |
18. 11.2005 |
19.11.2005 |
Иркутск |
215,00 ₽ |
No8 |
19.11.2005 |
20.11.2005 |
Владивосток |
525,00 ₽ |
9 |
20.11.2005 |
21.11.2005 |
Иркутск |
198,00 ₽ |
10 |
20. 11.2005 |
21.11.2005 |
Краснодар |
187,00 ₽ |
11 |
21.11.2005 |
22.11.2005 |
Санкт-Петербург |
81,00 ₽ |
12 |
23.11.2005 |
24.11.2005 |
Москва |
92,00 ₽ |
Таблица «Сведения о заказах»
Код сведений | Идентификатор заказа | Наименование товара | Код товара | Цена за единицу | Количество | Скидка |
---|---|---|---|---|---|---|
1 |
1 |
Собери клавиатуру |
12 |
77,95 ₽ |
9 |
0,05 |
2 |
1,1 |
Недвижущаяся фигурка бюрократа |
2 |
78,88 ₽ |
4 |
0,075 |
3 |
2 |
Приступить к вашему компьютеру! С DVD-диска! |
7 |
14,88 ₽ |
6 |
0,04 |
четырехпроцессорном |
2 |
Волшебная микросхема |
4 |
32,65 ₽ |
No8 |
0,00 |
5 |
2 |
Компьютерные маньяки и мифические животные |
6 |
78,50 ₽ |
4 |
0,00 |
6 |
3 |
Доступ! Игра! |
5 |
22,95 ₽ |
5 |
0,15 |
7 |
4 |
Фигурка программиста |
1,1 |
12,95 ₽ |
2 |
0,06 |
No8 |
четырехпроцессорном |
Неуловимая летающая пицца |
No8 |
36,75 ₽ |
No8 |
0,04 |
9 |
5 |
Внешний дисковод гибких дисков 5. 25» (масштаб 1:4) |
9 |
65,00 ₽ |
4 |
0,10 |
5-10 |
6 |
Схема реляционной базы данных |
3 |
22,50 ₽ |
12 |
0,065 |
11 |
7 |
Тьма |
11 |
53,33 ₽ |
6 |
0,08 |
12 |
7 |
Схема реляционной базы данных |
3 |
22,50 ₽ |
4 |
0,09 |
Вычисление простого общего итога
-
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
-
В диалоговом окне Добавление таблицы дважды щелкните таблицу, которую вы хотите использовать в запросе, а затем нажмите кнопку Закрыть.
При использовании примера данных нужно дважды щелкнуть таблицу «Заказы».
Таблица появится в окне в верхней части конструктора запросов.
-
Дважды щелкните поле, для которого вы хотите найти сумму. Убедитесь, что поле имеет тип данных «Число» или «Денежный». При попытке суммировать значения в нечисловых полях, например в текстовом поле, Access выводит сообщение об ошибке Несоответствие типов данных в выражении условия отбора.
Если вы используете пример данных, дважды щелкните столбец «Стоимость доставки».
Вы можете добавить дополнительные числовые поля, если хотите вычислить для них общие итоги. Итоговый запрос может вычислять общие итоги для нескольких столбцов.
-
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке появится строка Итог, а в ячейке столбца «Стоимость доставки» будет указано Группировка.
-
Измените значение в ячейке строки Итог строки на Sum.
-
Чтобы выполнить запрос и отобразить результаты в режиме таблицы, нажмите кнопку Выполнить .
Совет: Обратите внимание, что Access добавляет «Сумоф» к началу имени поля, которое вы хотите суммировать. Чтобы изменить заголовок столбца на более осмысленный, например Общееотгрузку, вернитесь в режим конструктора и щелкните в строке поле в столбце «сборы за доставку» в бланке запроса. Поместите курсор рядом с заГрузкой плата за отправку и введите слова всегоза отправку, а затем двоеточие, например: Общее отгрузку: сборы за доставку.
-
При необходимости вы можете сохранить запрос и закрыть его.
Вычисление общего итога за исключением нескольких записей
-
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
-
В диалоговом окне Добавление таблицы дважды щелкните таблицы «Заказы» и «Сведения о заказах», а затем нажмите кнопку Закрыть, чтобы закрыть диалоговое окно.
-
Добавьте поле «Дата заказа» из таблицы «Заказы» в первый столбец на бланке запроса.
-
В строке Условие отбора первого столбца введите Date() -1. Это выражение исключает записи с текущей датой из вычисляемого итогового значения.
-
Затем создайте столбец, который вычисляет объем продаж по каждой транзакции. Введите в строку Поле второго столбца на бланке следующее выражение:
Общее значение продаж: (1-[Сведения о заказах].[Скидка]/100)*([Сведения о заказах].[Цена за единицу]*[Сведения о заказах].[Количество])
Убедитесь, что выражение ссылается на поля с типами данных «Число» или «Денежный». Если оно ссылается на поля с другими типами данных, то при попытке выполнения запроса появится сообщение Несоответствие типов данных в выражении условия отбора.
-
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке появится строка Итог, а в первом и втором столбцах будет указано Группировка.
-
Во втором столбце измените значение в ячейке строки Итог строки на Sum. Функция Sum суммирует отдельные показатели продаж.
-
Чтобы выполнить запрос и отобразить результаты в режиме таблицы, нажмите кнопку Выполнить .
-
Сохраните запрос с именем Продажи за день.
Примечание: При следующем открытии запроса в Конструкторе можно заметить небольшие изменения в значениях, указанных для строк Поле и Итог в столбце «Общее значение продаж». Выражение заключено в функцию Sum, а в строке Итог выводится Выражение вместо функции Sum.
Например, если вы использовали пример данных и создали запрос, как показано выше, будет отображено:
Общее значение продаж: Sum((1-[Сведения о заказах]. Скидка/100)*([Сведения о заказах].Цена*[Сведения о заказах].Количество))
К началу страницы
Вычисление итогов по группе с помощью итогового запроса
В этом разделе описано, как создать итоговый запрос для вычисления промежуточных итогов по группам данных. Помните, что по умолчанию итоговый запрос может включать только поле или поля, содержащие данные, по которым выполняется группировка, например поле «Категории», а также поля со значениями, которые вы хотите просуммировать, например поле «Продажи». Итоговые запросы не могут включать другие поля, описывающие значения внутри категории. Если вы хотите отобразить эти описательные данные, создайте второй запрос на выборку, объединяющий поля из итогового запроса с полями, содержащими дополнительные данные.
В этом разделе описано, как создавать итоговые запросы и запросы на выборку, если требуется определить объем продаж для каждого товара. В качестве примера используются следующие таблицы:
Таблицы «Товары»
Код товара | Наименование товара | Цена | Категория |
---|---|---|---|
1,1 |
Фигурка программиста |
12,95 ₽ |
Куклы |
2 |
Эксперименты с C# (игра для всей семьи) |
15,85 ₽ |
Игры и головоломки |
3 |
Схема реляционной базы данных |
22,50 ₽ |
Картины и рамы |
4 |
Волшебная микросхема (500 деталей) |
32,65 ₽ |
Картины и рамы |
5 |
Доступ! Игра! |
22,95 ₽ |
Игры и головоломки |
6 |
Компьютерные маньяки и мифические животные |
78,50 ₽ |
Видеоигры |
7 |
Приступить к вашему компьютеру! С DVD-диска! |
14,88 ₽ |
DVD-диски и фильмы |
No8 |
Неуловимая летающая пицца |
36,75 ₽ |
Спортивное снаряжение |
9 |
Внешний дисковод гибких дисков 5. 25» (масштаб 1:4) |
65,00 ₽ |
Модели для сборки, хобби |
10 |
Недвижущаяся фигурка бюрократа |
78,88 ₽ |
Куклы |
11 |
Тьма |
53,33 ₽ |
Видеоигры |
12 |
Собери клавиатуру |
77,95 ₽ |
Модели для сборки, хобби |
Таблица «Сведения о заказах»
Код сведений | Идентификатор заказа | Наименование товара | Код товара | Цена за единицу | Количество | Скидка |
---|---|---|---|---|---|---|
1 |
1 |
Собери клавиатуру |
12 |
77,95 ₽ |
9 |
5% |
2 |
1,1 |
Недвижущаяся фигурка бюрократа |
2 |
78,88 ₽ |
4 |
7,5% |
3 |
2 |
Приступить к вашему компьютеру! С DVD-диска! |
7 |
14,88 ₽ |
6 |
4% |
4 |
2 |
Волшебная микросхема |
4 |
32,65 ₽ |
No8 |
до |
5 |
2 |
Компьютерные маньяки и мифические животные |
6 |
78,50 ₽ |
4 |
до |
6 |
3 |
Доступ! Игра! |
5 |
22,95 ₽ |
5 |
15% |
7 |
4 |
Фигурка программиста |
1,1 |
12,95 ₽ |
2 |
6% |
No8 |
Как в access посчитать сумму столбца
Advanced: требуется написание экспертов, взаимодействие и многоязыковые навыки.
Эта статья относится к файлу базы данных Microsoft Access (. mdb) или к файлу базы данных Microsoft Access (ACCDB).
Сводка
В этой статье описываются два метода, которые можно использовать для создания запроса итогов с накоплением. Итоговый запрос итогов — это запрос, в котором итоговое значение каждой записи является суммированием этой записи и всех предыдущих записей. Этот тип запроса полезен для отображения совокупных итогов для группы записей (или за период времени) на графике или отчете.
Note (Примечание ) Вы видите демонстрацию методики, используемой в этой статье, в примере файла QrySmp00. exe.
Дополнительные сведения
Способ 1
Первый метод использует функцию DSum и условия в запросе для создания суммы с накоплением с течением времени. Функция DSum суммирует текущую запись и все предыдущие записи. Когда запрос перемещается на следующую запись, функция DSum выполняется снова и обновляет общий итог.
Следующий пример запроса использует таблицу Orders из учебной базы данных Northwind для создания суммы стоимости доставки за каждый месяц 1997. В целях повышения производительности примеры данных ограничены одним годом. Так как функция DSum выполняется один раз для каждой записи в запросе, для завершения обработки запроса может потребоваться несколько секунд (в зависимости от скорости компьютера). Чтобы создать и запустить этот запрос, выполните указанные ниже действия.
Откройте учебную базу данных Northwind.
Создайте новый запрос на выборку и добавьте таблицу Orders .
В меню вид выберите пункт итоги.
Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .
В первом столбце бланка запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «Сортировать» и «Показать»:
В выражении в поле поле отображается и сортируется часть года поля OrderDate.
Во втором столбце бланка запроса введите в поле поле следующее выражение и выберите следующие параметры для полей «Итого», «Сортировать» и «Показать»:
Выражение в поле поля сортирует и отображает часть месяца поля Дата заказа в виде целого значения от 1 до 12.
В третьем столбце бланка запроса введите в поле поле следующее выражение, а для полей Итого и Show выберите следующие параметры.
Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.
Выражение в поле поле использует функцию DSum () для суммирования поля фрахта, если значения в полях Амонс и Айеар меньше или равны текущей записи, обрабатываемой запросом.
В четвертом столбце бланка запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «Сортировать» и «Показать»:
Выражение в поле поля отображает каждый месяц в текстовом формате, например Январь, фев, Мар и т. д.
В столбце пятый в бланке запроса введите следующее выражение в поле поле и выберите следующие значения для полей «Итого», «условия» и «Показать»:
Выражение в поле поля фильтрует набор записей запроса, чтобы включить данные только из 1997.
Выполните запрос. Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:
Способ 2
Второй метод использует итоговый запрос с функцией DSum () для создания итоговой суммы по группе.
Приведенный ниже пример запроса использует таблицу «заказы» для суммирования затрат на фрахт для каждого сотрудника, а также для расчета скользящей суммы фрахта. Чтобы создать и запустить запрос, выполните указанные ниже действия.
Откройте учебную базу данных Northwind. mdb.
Создайте новый запрос на выборку и добавьте таблицу Orders.
В Виевмену щелкните итоги.
Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .
В первом столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей «Итого» и «Показать»:
В этом поле данные группируются по КодСотрудника.
Во втором столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей «Итого» и «Показать»:
Это поле суммирует данные доставки.
В третьем столбце бланка запроса введите в поле поле следующее выражение, а для полей Итого и Show выберите следующие параметры.
Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.
Выражение в поле поле использует функцию DSum () для суммирования поля фрахта, когда EmployeeID меньше текущего Емпалиас, а затем форматирует поле в долларах.
Выполните запрос. Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:
RPI.su — самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected] . Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Строка «Итог» в Access позволяет быстро просматривать сводную информацию о данных в столбцах таблицы. Например, если добавить строку «Итог» в таблицу со сведениями о покупках, можно отобразить сумму продаж, общее число единиц товара или количество купленных товаров.
Примечание: Чтобы отобразить сумму значений столбца, необходимо установить для типа данных столбца значение «Числовой», «Дробный» или «Денежный». Для нечисловых столбцов можно выбрать только итоговый тип «Количество значений».
Добавление строки «Итого»
В области навигации дважды щелкните таблицу, запрос или разделенную форму, чтобы открыть ее в режиме таблицы.
На вкладке Главная в группе Записи нажмите кнопку Итоги.
Под таблицей появится строка Итог.
Щелкните в каждой ячейке строки Итого, где должен отображаться тот или иной итог, и выберите его тип.
Выбор типа итога
После добавления строки итогов вы выбираете тип итогового значения, отображаемого для каждого столбца. Например, агрегаты, такие как суммы, могут отображаться, если выбран тип данных «число», «десятичный» или «денежный». Подсчет значений возможно, если тип данных является текстовым значением.
Давайте сделаем так, чтобы в этом примере таблица отображала сумму значений в столбцах Цена покупки и Купленные товары и общее количество для столбца Позиция, как показано на изображении ниже.
Вместо слова Итого в первом столбце можно отобразить общее количество записей. Щелкните по строке Итоги для столбца элемент , щелкните стрелку и выберите команду подсчитать, чтобы увидеть общее количество элементов или число.
Потом щелкните стрелку в столбце Цена покупки и выберите пункт Сумма, чтобы увидеть общую цену покупки всех товаров.
Повторите предыдущий шаг для столбца Купленные товары, чтобы увидеть общее количество купленных товаров.
Примечание: Строку Итог нельзя удалить или вырезать, но можно скрыть, выбрав пункт Итоги на вкладке Главная.
Как работает «Сумма» и другие агрегатные функции
Агрегатные функции выполняют вычисления со столбцами данных и возвращают один результат. Они могут быть полезны, если вам нужно рассчитать единственное значение, например сумму или среднее. Следует помнить, что агрегатные функции применяются к столбцам данных. Это может показаться очевидным, но при разработке и использовании баз данных вы обычно уделяете внимание строкам данных и отдельным записям, чтобы пользователи могли вводить данные в поле, перемещать курсор вправо или влево для заполнения следующего поля и т. д. И наоборот, вы используете агрегатные функции, уделяя основное внимание группам записей в столбцах.
Предположим, что вы используете Access для хранения и отслеживания данных о продажах. С помощью агрегатных функций можно посчитать число проданных товаров в одном столбце, общую сумму продаж — во втором и средний объем продаж для каждого товара — в третьем.
В таблице ниже описаны агрегатные функции Access, которые доступны в строке «Итог». Помните, что в Access есть и другие агрегатные функции, но они используются в запросах.
Поддерживаемые типы данных
Доступна в строке «Итог»?
Вычисляет среднее значение для столбца. Столбец должен содержать числовые или денежные величины или значения даты или времени. Функция игнорирует пустые значения.
«Числовой», «Действительное», «Денежный», «Дата и время»
Подсчитывает число элементов в столбце.
Все типы данных, за исключением сложных повторяющихся скалярных данных, таких как столбец многозначных списков. Дополнительные сведения о многозначных списках можно найти в статье рекомендации по созданиюи удалению многозначных полей в руководствах , посвященных многозначным полям.
Возвращает элемент с наибольшим значением. Для текстовых данных наибольшим будет последнее по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.
«Числовой», «Действительное», «Денежный», «Дата и время»
Возвращает элемент с наименьшим значением. Для текстовых данных наименьшим будет первое по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.
«Числовой», «Действительное», «Денежный», «Дата и время»
Показывает, насколько значения отклоняются от среднего. Подробнее см. в следующем разделе Дополнительные сведения о функциях «Стандартное отклонение» и «Дисперсия».
«Числовой», «Действительное», «Денежный»
Суммирует элементы в столбце. Подходит только для числовых и денежных данных.
«Число», «Действительное», «Денежный»
Вычисляет статистическую дисперсию для всех значений в столбце. Подходит только для числовых и денежных данных. Если таблица содержит менее двух строк, Access возвращает пустое значение. Подробнее о функции «Дисперсия» см. в следующем разделе Дополнительные сведения о функциях «Стандартное отклонение» и «Дисперсия».
«Числовой», «Действительное», «Денежный»
Дополнительные сведения о функциях «Стандартное отклонение» и «Дисперсия»
Функции Стандартное отклонение и Дисперсия рассчитывают статистические значения. В частности, они применяются для значений, которые лежат в окрестности своего среднего значения и подчиняются закону нормального распределения (находятся на гауссовой кривой).
Предположим, что вы случайным образом выбрали 10 инструментов, изготовленных на одном станке, и измерили их прочность на излом для проверки станка и контроля качества. Если вы рассчитаете среднее значение прочности на излом, то увидите, что для большей части инструментов прочность на излом близка к среднему значению, но также есть инструменты с большими и меньшими показателями. Тем не менее если вы рассчитаете только среднее значение прочности на излом, этот показатель не даст вам никакой информации об эффективности контроля качества, поскольку несколько необычно прочных или хрупких инструментов могут увеличить или уменьшить среднее значение.
Функции вариативности и стандартных отклонений обозначают эту проблему, указывая, насколько близки значения к среднему. Для критической силы меньшие числа, возвращаемые одной из функций, указывают на то, что ваши производственные процессы работают нормально, так как некоторые из них имеют ограниченную степень, так как выше или ниже среднего.
Подробное описание дисперсии и стандартного отклонения выходит за рамки этой статьи. Дополнительные сведения об обеих функциях можно найти на веб-сайтах, посвященных статистике. При использовании функций Дисперсия и Стандартное отклонение помните о следующих правилах:
Эти функции игнорируют пустые значения.
Для функции Дисперсия используется формула:
Для функции Стандартное отклонение используется формула:
Суммирование в отчетах. Вычисляемые поля в запросах Access Чтобы создать отчет
Вычисления в формах используются:
- при создании вычисляемых полей, т. е. таких элементов управления, значения которых вычисляются на основе значений других элементов управления или встроенных функций;
- для вычисления значения по умолчанию элементов управления формы;
- в выражениях, с помощью которых задаются некоторые свойства элементов управления, например условие на значение, условия для отбора записей в форме и ряд других.
Правила составления выражений в Access мы уже описывали (см. разд. «Использование выражений в запросах» гл. 4). Поэтому здесь мы остановимся в первую очередь на вычисляемых полях формы и опишем, где они нужны и как их создать.
Внимание
Формулы для вычислений в Access записываются с помощью специального синтаксиса, который диктует правила записи формул и в выражениях Access и в процедурах на VBA. Этот синтаксис несколько отличается от принятого в математике, однако во многом на него похож и интуитивно понятен. Описание синтаксиса вычислительных формул приведено в разд. «Выражения в Access» гл. 4 .
Создание вычисляемых полей
Простейшим вычисляемым полем является поле, в котором должна выводиться текущая дата. Чтобы создать такое поле:
- Создайте свободный элемент управления типа Поле (Text Box) в нужном месте формы.
- Прямо в поле введите выражение =Date () . Знак равенства обязателен.
- Откройте окно Свойства (Properties) для этого элемента и задайте для свойства Формат поля (Format) желаемый формат даты, например Длинный формат даты (Long Date).
- Установите длину поля таким образом, чтобы в нем помещалось необходимое количество символов.
- Измените название метки этого текстового поля. Созданное поле будет выглядеть, как показано на рис. 9.47.
Рис. 9.47 . Вычисляемое поле
Создание отчетов
Отчеты дают вам возможность представить компоненты вашей базы данных в удобном для чтения формате для печати. Access 2010 позволяет создавать отчеты из таблиц и запросов.
Чтобы создать отчет:
Подобно таблицам и запросам, отчеты можно сортировать и фильтровать. Просто щелкните правой кнопкой мыши поле, которое вы хотите сортировать или фильтровать, затем выберите нужную функцию сортировки или фильтрации.
Удаление полей
Вы можете обнаружить, что ваш отчет содержит некоторые поля, которые вам действительно не нужны. Например, наш отчет содержит поле Zip Code, которое не обязательно в этом списке заказов. К счастью, вы можете удалять поля в отчетах, не затрагивая таблицу или запрос, где вы вытащили ваши данные.
Чтобы удалить поле в отчете:
- Щелкните любую ячейку в поле, которое вы хотите удалить.
- Нажмите клавишу «Удалить».
Когда вы удаляете поле, обязательно удалите его заголовок. Просто выберите заголовок и нажмите клавишу «Удалить».
Печать и сохранение отчетов в режиме предварительного просмотра
Хотя вы можете печатать отчеты с помощью команд в представлении Backstage, вы также можете использовать Предварительный просмотр. Предварительный просмотр показывает, как ваш отчет будет отображаться на распечатанной странице. Он также позволяет вам изменять способ отображения отчета, распечатывать его и даже сохранять его как другой тип файла.
Чтобы распечатать отчет:
Сохранение отчетов
Вы можете сохранять отчеты в других форматах, чтобы они могли отображаться вне Access. Это называе
Сумма данных с помощью запроса
В этой статье объясняется, как использовать тип функции, называемой агрегатной функцией, для суммирования данных в наборе результатов запроса. В этой статье также кратко объясняется, как использовать другие агрегатные функции, такие как COUNT и AVG , для подсчета или усреднения значений в наборе результатов. Кроме того, в этой статье объясняется, как использовать строку итогов — функцию в Access, которую вы используете для суммирования данных без необходимости изменять структуру запросов.
Что ты хочешь сделать?
Понять способы суммирования данных
Подготовьте образцы данных
Суммирование данных с помощью строки итогов
Рассчитать общие итоги с помощью запроса
Вычислить итоговые данные по группе с помощью итогового запроса
Суммирование данных по нескольким группам с помощью запроса кросс-таблицы
Справочник по агрегатной функции
Общие сведения о способах суммирования данных
Вы можете просуммировать числовой столбец в запросе, используя тип функции, называемой агрегатной функцией. Агрегатные функции выполняют вычисление в столбце данных и возвращают одно значение. Access предоставляет множество агрегатных функций, включая Sum , Count , Avg (для вычисления средних значений), Min и Max . Вы суммируете данные, добавляя к запросу функцию Sum , подсчитываете данные с помощью функции Count и так далее.
Кроме того, Access предоставляет несколько способов добавить в запрос Sum и другие агрегатные функции.Вы можете:
Откройте запрос в режиме таблицы и добавьте строку Итого. Строка итогов, функция в Access, позволяет использовать агрегатную функцию в одном или нескольких столбцах набора результатов запроса без изменения структуры запроса.
Создать итоговый запрос. Итоговый запрос вычисляет промежуточные итоги по группам записей; Строка Итого вычисляет общие итоги для одного или нескольких столбцов (полей) данных.Например, если вы хотите подвести промежуточные итоги всех продаж по городам или по кварталам, вы используете итоговый запрос для группировки записей по желаемой категории, а затем суммируете цифры продаж.
Создайте запрос кросс-таблицы. Запрос кросс-таблицы — это особый тип запроса, результаты которого отображаются в сетке, напоминающей лист Excel. Запросы кросс-таблицы суммируют ваши значения, а затем группируют их по двум наборам фактов: один расположен сбоку (заголовки строк), а другой — сверху (заголовки столбцов).Например, вы можете использовать запрос кросс-таблицы для отображения общих продаж для каждого города за последние три года, как показано в следующей таблице:
Город | 2003 | 2004 | 2005 |
---|---|---|---|
Париж | 254 556 | 372 455 | 467 892 |
Сидней | 478 021 | 372 987 | 276 399 |
Джакарта | 572,997 | 684 374 | 792 571 |
. .. | … | … | … |
Примечание: Разделы с практическими рекомендациями в этом документе подчеркивают использование функции Sum , но помните, что вы можете использовать другие агрегатные функции в своих строках и запросах Total.Дополнительные сведения об использовании других агрегатных функций см. В разделе «Справка по агрегатным функциям» далее в этой статье.
Дополнительные сведения о способах использования других агрегатных функций см. В статье Отображение итоговых значений столбцов в таблице.
Шаги, описанные в следующих разделах, объясняют, как добавить строку итогов, использовать итоговый запрос для суммирования данных по группам и как использовать перекрестный запрос, который вычисляет промежуточные итоги по группам и временным интервалам. По мере продвижения помните, что многие агрегатные функции работают только с данными в полях, для которых задан определенный тип данных. Например, функция SUM работает только с полями, для которых заданы типы данных Number, Decimal или Currency. Дополнительные сведения о типах данных, необходимых для каждой функции, см. В разделе «Справка по агрегатным функциям» далее в этой статье.
Общие сведения о типах данных см. В статье «Изменение или изменение типа данных, установленного для поля».
Верх страницы
Подготовьте образцы данных
Разделы с практическими рекомендациями в этой статье содержат таблицы с примерами данных. В инструкциях используются примеры таблиц, чтобы помочь вам понять, как работают агрегатные функции. При желании вы можете при желании добавить образцы таблиц в новую или существующую базу данных.
Access предоставляет несколько способов добавления этих примеров таблиц в базу данных. Вы можете ввести данные вручную, вы можете скопировать каждую таблицу в программу для работы с электронными таблицами, такую как Excel, а затем импортировать листы в Access, или вы можете вставить данные в текстовый редактор, например Блокнот, и импортировать данные из полученных текстовых файлов.
Шаги в этом разделе объясняют, как вручную ввести данные в пустую таблицу и как скопировать образцы таблиц в программу для работы с электронными таблицами, а затем импортировать эти таблицы в Access. Дополнительные сведения о создании и импорте текстовых данных см. В статье Импорт данных в текстовом файле или создание ссылки на них.
В инструкциях в этой статье используются следующие таблицы. Используйте эти таблицы для создания ваших выборочных данных:
Категории Таблица:
Категория |
---|
Куклы |
Игры и головоломки |
Искусство и обрамление |
Видеоигры |
DVD и фильмы |
Модели и хобби |
Спорт |
The Products table:
Название продукта | Цена | Категория |
---|---|---|
Фигурка программатора | $ 12. 95 | Куклы |
Fun with C # (настольная игра для всей семьи) | $ 15,85 | Игры и головоломки |
Схема реляционной базы данных | $ 22.50 | Искусство и обрамление |
Волшебный компьютерный чип (500 штук) | $ 32,65 | Игры и головоломки |
Доступ! Игра! | $ 22.95 | Игры и головоломки |
Компьютерные фанаты и мифические существа | 78,50 $ | Видеоигры |
Упражнение для компьютерных фанатов! DVD! | $ 14. 88 | DVD и фильмы |
Ultimate Flying Pizza | $ 36,75 | Спорт |
Внешний 5,25-дюймовый дисковод для гибких дисков (масштаб 1/4) | 65 долларов.00 | Модели и хобби |
Бюрократ, фигура бездействия | $ 78,88 | Куклы |
Мрак | $ 53.33 | Видеоигры |
Создайте свою клавиатуру | $ 77. 95 | Модели и хобби |
The Orders таблица:
Дата заказа | Дата отгрузки | Корабельный город | Стоимость доставки |
---|---|---|---|
14.11.2005 | 15.11.2005 | Джакарта | 55 долларов США. 00 |
14.11.2005 | 15.11.2005 | Сидней | 76,00 $ |
16.11.2005 | 17.11.2005 | Сидней | $ 87.00 |
17.11.2005 | 18.11.2005 | Джакарта | 43,00 |
17.11.2005 | 18.11.2005 | Париж | 105 долларов. 00 |
17.11.2005 | 18.11.2005 | Штутгарт | 112,00 |
18.11.2005 | 19.11.2005 | Вена | 215 долларов.00 |
19.11.2005 | 20.11.2005 | Майами | 525,00 $ |
20.11.2005 | 21.11.2005 | Вена | 198 $. 00 |
20.11.2005 | 21.11.2005 | Париж | 187,00 $ |
21.11.2005 | 22.11.2005 | Сидней | $ 81.00 |
23.11.2005 | 24.11.2005 | Джакарта | 92,00 |
The Детали заказа таблица:
Код заказа | Название продукта | Идентификатор продукта | Цена за единицу | Кол-во | Скидка |
---|---|---|---|---|---|
1 | Создайте свою клавиатуру | 12 | 77 долларов. 95 | 9 | 5% |
1 | Бюрократ, фигура бездействия | 2 | 78 долларов.88 | 4 | 7,5% |
2 | Упражнение для компьютерных фанатов! DVD! | 7 | $ 14.88 | 6 | 4% |
2 | Волшебный компьютерный чип | 4 | $ 32. 65 | 8 | 0 |
2 | Компьютерные фанаты и мифические существа | 6 | 78 долларов.50 | 4 | 0 |
3 | Доступ! Игра! | 5 | $ 22.95 | 5 | 15% |
4 | Фигурка программиста | 1 | $ 12. 95 | 2 | 6% |
4 | Ultimate Flying Pizza | 8 | $ 36.75 | 8 | 4% |
5 | Внешний 5,25-дюймовый дисковод для гибких дисков (масштаб 1/4) | 9 | 65 долларов.00 | 4 | 10% |
6 | Схема реляционной базы данных | 3 | $ 22. 50 | 12 | 6,5% |
7 | Мрак | 11 | $ 53,33 | 6 | 8% |
7 | Схема реляционной базы данных | 3 | $ 22.50 | 4 | 9% |
Примечание. Помните, что в типичной базе данных таблица сведений о заказе будет содержать только поле «Идентификатор продукта», а не поле «Название продукта». В таблице-образце используется поле «Название продукта», чтобы облегчить чтение данных.
Введите данные образца вручную
На вкладке Создать в группе Таблицы щелкните Таблица .
Access добавляет новую пустую таблицу в вашу базу данных.
Примечание: Вам не нужно выполнять этот шаг, если вы открываете новую пустую базу данных, но вам нужно будет следовать ему всякий раз, когда вам нужно добавить таблицу в базу данных.
Дважды щелкните первую ячейку в строке заголовка и введите имя поля в образце таблицы.
По умолчанию Access обозначает пустые поля в строке заголовка с текстом Добавить новое поле , например:
Используйте клавиши со стрелками, чтобы перейти к следующей пустой ячейке заголовка, и введите второе имя поля (вы также можете нажать TAB или дважды щелкнуть новую ячейку).Повторяйте этот шаг, пока не введете все имена полей.
Введите данные в примерную таблицу.
По мере ввода данных Access определяет тип данных для каждого поля. Если вы новичок в реляционных базах данных, вам следует установить определенный тип данных, например число, текст или дату / время, для каждого поля в ваших таблицах. Установка типа данных помогает обеспечить точный ввод данных, а также помогает предотвратить ошибки, например использование номера телефона в вычислениях.Для этих примеров таблиц вы должны позволить Access определить тип данных.
Когда вы закончите ввод данных, нажмите Сохранить .
Сочетание клавиш Нажмите CTRL + S.
Появится диалоговое окно Сохранить как .
В поле Table Name введите имя образца таблицы и нажмите OK .
Вы используете имя каждой примерной таблицы, потому что запросы в разделах с практическими рекомендациями используют эти имена.
Повторяйте эти шаги, пока не создадите все образцы таблиц, перечисленные в начале этого раздела.
Если вы не хотите вводить данные вручную, выполните следующие действия, чтобы скопировать данные в файл электронной таблицы, а затем импортировать данные из файла электронной таблицы в Access.
Создайте образцы рабочих листов
Запустите программу для работы с электронными таблицами и создайте новый пустой файл. Если вы используете Excel, по умолчанию создается новая пустая книга.
Скопируйте первый образец таблицы, представленной выше, и вставьте ее в первый рабочий лист, начиная с первой ячейки.
Переименуйте рабочий лист, используя технику, предоставленную вашей программой для работы с электронными таблицами.Дайте листу то же имя, что и образец таблицы. Например, если образец таблицы называется Категории , дайте рабочему листу такое же имя.
Повторите шаги 2 и 3, скопировав каждую примерную таблицу на пустой рабочий лист и переименовав рабочий лист.
Примечание: Возможно, вам потребуется добавить рабочие листы в файл электронной таблицы. Информацию о выполнении этой задачи см. В справке к программе для работы с электронными таблицами.
Сохраните книгу в удобном месте на вашем компьютере или в сети и перейдите к следующему набору шагов.
Создание таблиц базы данных из рабочих листов
На вкладке Внешние данные в группе Импорт щелкните Excel .
-или-
Щелкните More , а затем выберите программу для работы с электронными таблицами из списка.
Откроется диалоговое окно «Получение внешних данных — таблица имени программы» .
Щелкните Обзор , откройте файл электронной таблицы, созданный на предыдущих шагах, а затем щелкните ОК .
Запустится мастер импорта электронной таблицы.
По умолчанию мастер выбирает первый рабочий лист в книге (рабочий лист Customers , если вы выполнили действия, описанные в предыдущем разделе), и данные из рабочего листа отображаются в нижнем разделе страницы мастера.Щелкните Далее .
На следующей странице мастера щелкните Первая строка содержит заголовки столбцов , а затем щелкните Далее .
При желании на следующей странице используйте текстовые поля и списки в разделе Параметры поля , чтобы изменить имена полей и типы данных или исключить поля из операции импорта. В противном случае щелкните Далее .
Оставьте выбранной опцию Разрешить доступу добавлять первичный ключ и нажмите Далее .
По умолчанию Access применяет имя рабочего листа к вашей новой таблице. Подтвердите имя или введите другое имя, а затем нажмите Finish .
org/ListItem»>
Повторяет шаги с 1 по 7, пока вы не создадите таблицу из каждого рабочего листа в книге.
Переименовать поля первичного ключа
Примечание. Когда вы импортировали рабочие листы, Access автоматически добавил столбец первичного ключа в каждую таблицу и, по умолчанию, Access назвал этот столбец «ID» и установил для него тип данных AutoNumber. Приведенные здесь шаги объясняют, как переименовать каждое поле первичного ключа. Это помогает четко идентифицировать все поля в запросе.
В области навигации щелкните правой кнопкой мыши каждую из таблиц, созданных на предыдущих шагах, и выберите Design View .
Найдите поле первичного ключа для каждой таблицы. По умолчанию Access именует каждое поле ID .
В столбце Имя поля для каждого поля первичного ключа добавьте имя таблицы.
Например, вы бы переименовали поле идентификатора в таблице категорий в «ID категории», а поле таблицы «Заказы» — на «идентификатор заказа.«В таблице« Сведения о заказе »переименуйте поле в« Идентификатор детали ». Для таблицы« Товары »переименуйте поле в« Идентификатор продукта ».
Сохраните изменения.
Каждый раз, когда в этой статье появляются примеры таблиц, они включают поле первичного ключа, и поле переименовывается, как описано в предыдущих шагах.
Верх страницы
Суммирование данных с использованием строки итогов
Вы можете добавить строку итогов в запрос, открыв запрос в режиме таблицы, добавив строку, а затем выбрав агрегатную функцию, которую вы хотите использовать, например Sum , Min , Max или В среднем .Шаги в этом разделе объясняют, как создать базовый запрос выбора и добавить строку Итого. Вам не нужно использовать образцы таблиц, описанные в предыдущем разделе.
Создать базовый запрос выбора
На вкладке Create в группе Other щелкните Query Design .
В диалоговом окне Показать таблицы дважды щелкните таблицу или таблицы, которые вы хотите использовать в своем запросе, а затем щелкните Закрыть .
Выбранная таблица или таблицы отображаются в виде окон в верхней части конструктора запросов.
Дважды щелкните поля таблицы, которые вы хотите использовать в своем запросе.
Вы можете включить поля, содержащие описательные данные, такие как имена и описания, но вы должны включить поле, которое содержит числовые или валютные данные.
Каждое поле отображается в ячейке сетки дизайна.
Нажмите Выполните для выполнения запроса.
Набор результатов запроса отображается в режиме таблицы.
При желании переключитесь в представление «Дизайн» и настройте запрос. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите Design View . Затем вы можете настроить запрос по мере необходимости, добавив или удалив поля таблицы.Чтобы удалить поле, выберите столбец в сетке дизайна и нажмите DELETE.
Сохраните ваш запрос.
Добавить строку итогов
Убедитесь, что ваш запрос открыт в режиме таблицы. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите Datasheet View .
-или-
В области навигации дважды щелкните запрос.Это запускает запрос и загружает результаты в таблицу.
На вкладке Home в группе Records щелкните Totals .
В таблице появится новая строка Итого .
В строке Итого щелкните ячейку в поле, которое вы хотите суммировать, а затем выберите Сумма из списка.
Скрыть строку итогов
Для получения дополнительных сведений об использовании строки итогов см. Статью Отображение итоговых значений столбцов в таблице.
Верх страницы
Расчет общих итогов с помощью запроса
Общий итог — это сумма всех значений в столбце. Вы можете рассчитать несколько типов общих итогов, в том числе:
Простая общая сумма, которая суммирует значения в одном столбце.Например, вы можете рассчитать общую стоимость доставки.
Расчетная общая сумма, которая суммирует значения в более чем одном столбце. Например, вы можете рассчитать общий объем продаж, умножив стоимость нескольких товаров на количество заказанных товаров, а затем суммируя полученные значения.
Общая сумма без учета некоторых записей. Например, вы можете подсчитать общий объем продаж только за прошлую пятницу.
Шаги, описанные в следующих разделах, объясняют, как создать каждый тип общей суммы. В шагах используются таблицы «Заказы» и «Сведения о заказах».
Стол заказов
Код заказа | Дата заказа | Дата отгрузки | Корабельный город | Стоимость доставки |
---|---|---|---|---|
1 | 14. 11.2005 | 15.11.2005 | Джакарта | 55 долларов США.00 |
2 | 14.11.2005 | 15.11.2005 | Сидней | 76,00 $ |
3 | 16.11.2005 | 17.11.2005 | Сидней | $ 87.00 |
4 | 17. 11.2005 | 18.11.2005 | Джакарта | 43,00 |
5 | 17.11.2005 | 18.11.2005 | Париж | 105 долларов.00 |
6 | 17.11.2005 | 18.11.2005 | Штутгарт | 112,00 |
7 | 18. 11.2005 | 19.11.2005 | Вена | 215 долларов.00 |
8 | 19.11.2005 | 20.11.2005 | Майами | 525,00 $ |
9 | 20.11.2005 | 21.11.2005 | Вена | 198 $.00 |
10 | 20. 11.2005 | 21.11.2005 | Париж | 187,00 $ |
11 | 21.11.2005 | 22.11.2005 | Сидней | $ 81.00 |
12 | 23.11.2005 | 24.11.2005 | Джакарта | 92,00 |
Таблица деталей заказа
ID детали | Код заказа | Название продукта | Идентификатор продукта | Цена за единицу | Кол-во | Скидка |
---|---|---|---|---|---|---|
1 | 1 | Создайте свою клавиатуру | 12 | 77 долларов. 95 | 9 | 0,05 |
2 | 1 | Бюрократ, фигура бездействия | 2 | 78 долларов.88 | 4 | 0,075 |
3 | 2 | Упражнение для компьютерных фанатов! DVD! | 7 | $ 14.88 | 6 | 0,04 |
4 | 2 | Волшебный компьютерный чип | 4 | $ 32. 65 | 8 | 0,00 |
5 | 2 | Компьютерные фанаты и мифические существа | 6 | 78 долларов.50 | 4 | 0,00 |
6 | 3 | Доступ! Игра! | 5 | $ 22.95 | 5 | 0,15 |
7 | 4 | Фигурка программиста | 1 | $ 12. 95 | 2 | 0,06 |
8 | 4 | Ultimate Flying Pizza | 8 | $ 36.75 | 8 | 0,04 |
9 | 5 | Внешний 5,25-дюймовый дисковод для гибких дисков (масштаб 1/4) | 9 | 65 долларов.00 | 4 | 0,10 |
10 | 6 | Схема реляционной базы данных | 3 | $ 22. 50 | 12 | 0,065 |
11 | 7 | Мрак | 11 | $ 53.33 | 6 | 0,08 |
12 | 7 | Схема реляционной базы данных | 3 | $ 22.50 | 4 | 0,09 |
Вычислить простую общую сумму
На вкладке Create в группе Other щелкните Query Design .
В диалоговом окне Показать таблицу дважды щелкните таблицу, которую вы хотите использовать в запросе, а затем щелкните Закрыть .
Если вы используете образец данных, дважды щелкните таблицу заказов.
Таблица появится в окне в верхней части конструктора запросов.
Дважды щелкните поле, которое вы хотите суммировать. Убедитесь, что в поле задан тип данных Число или Валюта. Если вы попытаетесь суммировать значения в нечисловых полях, таких как текстовое поле, Access отобразит несоответствие типа данных в выражении критерия сообщение об ошибке при попытке выполнить запрос.
Если вы используете образец данных, дважды щелкните столбец Стоимость доставки.
Вы можете добавить в сетку дополнительные числовые поля, если хотите вычислить общие итоги для этих полей. Итоговый запрос может вычислять общие итоги для более чем одного столбца.
На вкладке Design в группе Показать / скрыть щелкните Totals .
Строка Итого появится в сетке проекта, а Группировать по появится в ячейке в столбце Стоимость доставки.
Измените значение в ячейке в строке Итого на Сумма .
Нажмите Выполните для запуска запроса и отображения результатов в режиме таблицы.
Совет: Обратите внимание, что Access добавляет «SumOf» в начало имени поля, которое вы суммируете. Чтобы изменить заголовок столбца на что-то более значимое, например Общая стоимость доставки , вернитесь в представление «Дизайн» и щелкните строку Поле столбца «Стоимость доставки» в сетке дизайна.Поместите курсор рядом с Стоимость доставки и введите слова Общая стоимость доставки с последующим двоеточием, например: Общая стоимость доставки: Стоимость доставки .
При желании сохраните запрос и закройте его.
Вычислить общую сумму без учета некоторых записей
На вкладке Create в группе Other щелкните Query Design .
В диалоговом окне Показать таблицу дважды щелкните таблицу заказов и таблицу сведений о заказе, а затем щелкните Закрыть , чтобы закрыть диалоговое окно.
Добавьте поле «Дата заказа» из таблицы «Заказы» в первый столбец в сетке конструктора запросов.
В строке Criteria первого столбца введите Date () -1 .Это выражение исключает записи текущего дня из вычисленной суммы.
Затем создайте столбец, в котором рассчитывается сумма продаж для каждой транзакции. Введите следующее выражение в строке Поле второго столбца сетки:
Общая сумма продаж: (1- [Сведения о заказе]. [Скидка] / 100) * ([Сведения о заказе]. [Цена за единицу] * [Сведения о заказе]. [Количество])
Убедитесь, что ваше выражение ссылается на поля, для которых заданы типы данных Number или Currency.Если ваше выражение относится к полям, для которых заданы другие типы данных, Access отображает сообщение Несоответствие типов данных в выражении критерия при попытке выполнить запрос.
На вкладке Design в группе Показать / скрыть щелкните Totals .
Строка Итого отображается в сетке проекта, а Группировать по отображается в первом и втором столбцах.
Во втором столбце измените значение в ячейке строки Total на Sum . Функция Sum складывает отдельные показатели продаж.
Нажмите Выполните для запуска запроса и отображения результатов в режиме таблицы.
Сохраните запрос как Ежедневные продажи .
Примечание: В следующий раз, когда вы откроете запрос в представлении «Дизайн», вы можете заметить небольшое изменение значений, указанных в строках Поле и Всего столбца Суммарное значение продаж. Выражение заключено внутри функции Sum , а в строке Total вместо Sum отображается Expre ssion .
Например, если вы используете образец данных и создаете запрос (как показано на предыдущих шагах), вы увидите:
Общая сумма продаж: Сумма ((1- [Детали заказа].Скидка / 100) * ([Детали заказа]. Unitprice * [Детали заказа]. Количество))
Верх страницы
Вычислить итоговые суммы по группе с помощью итогового запроса
Шаги в этом разделе объясняют, как создать итоговый запрос, который вычисляет промежуточные итоги по группам данных. По мере продолжения помните, что по умолчанию итоговый запрос может включать только поле или поля, содержащие данные вашей группы, такие как поле «категории», и поле, содержащее данные, которые вы хотите суммировать, например » продажи ».Итоговые запросы не могут включать другие поля, описывающие элементы в категории. Если вы хотите увидеть эти описательные данные, вы можете создать второй запрос выбора, который объединяет поля в вашем итоговом запросе с дополнительными полями данных.
Шаги в этом разделе объясняют, как создать итоги и выбрать запросы, необходимые для определения общих продаж для каждого продукта. Шаги предполагают использование этих примеров таблиц:
Таблица товаров
Идентификатор продукта | Название продукта | Цена | Категория |
---|---|---|---|
1 | Фигурка программатора | $ 12. 95 | Куклы |
2 | Fun with C # (настольная игра для всей семьи) | $ 15,85 | Игры и головоломки |
3 | Схема реляционной базы данных | $ 22.50 | Искусство и обрамление |
4 | Волшебный компьютерный чип (500 штук) | $ 32,65 | Искусство и обрамление |
5 | Доступ! Игра! | $ 22. 95 | Игры и головоломки |
6 | Компьютерные фанаты и мифические существа | 78,50 $ | Видеоигры |
7 | Упражнение для компьютерных фанатов! DVD! | $ 14.88 | DVD и фильмы |
8 | Ultimate Flying Pizza | $ 36,75 | Спорт |
9 | Внешний 5. 25-дюймовый дисковод гибких дисков (масштаб 1/4) | 65,00 $ | Модели и хобби |
10 | Бюрократ, фигура бездействия | $ 78,88 | Куклы |
11 | Мрак | $ 53.33 | Видеоигры |
12 | Создайте свою клавиатуру | $ 77.95 | Модели и хобби |
Таблица деталей заказа
ID детали | Код заказа | Название продукта | Идентификатор продукта | Цена за единицу | Кол-во | Скидка |
---|---|---|---|---|---|---|
1 | 1 | Создайте свою клавиатуру | 12 | 77 долларов. 95 | 9 | 5% |
2 | 1 | Бюрократ, фигура бездействия | 2 | 78 долларов.88 | 4 | 7,5% |
3 | 2 | Упражнение для компьютерных фанатов! DVD! | 7 | $ 14.88 | 6 | 4% |
4 | 2 | Волшебный компьютерный чип | 4 | $ 32. 65 | 8 | 0 |
5 |
Советы Microsoft Access: вычисляемые поля
Советы Microsoft Access: вычисляемые поляСоветы Microsoft Access для обычных пользователей
Предоставлено Алленом Брауном, ноябрь 2003 г.Обновлено в апреле 2010 г.
Как получить доступ для сохранения результата расчета?
Например, если у вас есть поля с именами Quantity и UnitPrice , как получить доступ для записи Quantity * UnitPrice в другое поле с именем Amount ?
Лучший ответ: «Не надо!»
Вычисляемые поля принадлежат запросам, а не таблицам.
Вычисляемые столбцы являются частью жизни электронной таблицы, но не принадлежат таблице базы данных.Никогда не храните значение, зависящее от других полей: это основное правило нормализации. Нарушите правило, и вам придется беспокоиться о том, как правильно вести расчет во всех возможных обстоятельствах.
Спросите себя, «Было бы неправильно, если бы мое поле содержало значение, отличное от вычисленного?» Если вы ответили «Да», вы не должны сохранять поле. Если разница будет значимой, вам нужно поле.
Итак, как получить вычисляемое поле, если не хранить его в таблице? Используйте запрос:
- Создайте запрос на основе вашей таблицы.
- Введите свое выражение в строку «Поле» сетки конструктора запроса:
Сумма: [Количество] * [UnitPrice]
Это создает поле с именем Amount . Любая форма или отчет, основанные на этом запросе, обрабатывают вычисляемое поле как любое другое, поэтому вы можете легко суммировать результаты. Это просто, эффективно и надежно.
Что ж, почти безошибочно: ваши вычисляемые поля могут быть неправильно истолкованы.
Вы все равно хотите сохранить вычисленный результат?
Существуют обстоятельства, при которых имеет смысл сохранить вычисленный результат — обычно, когда вам иногда требуется гибкость, чтобы сохранить другое значение.
Допустим, вы взимаете плату за строительство, которая обычно составляет дополнительные 10%, но для получения некоторых предложений вы можете отказаться от платы. Вычисляемое поле работать не будет. В этом случае имеет смысл иметь запись, в которой комиссия составляет 0 долларов вместо 10%, поэтому вы должны сохранить ее как поле в таблице.
Для этого используйте событие After Update элементов управления в форме, чтобы автоматически рассчитать комиссию:
- Задайте для свойства После обновления текстового поля Количество значение [Процедура события].
- Нажмите кнопку «Построить» (…) рядом с этим. Access открывает окно кода.
- Введите эту строку между строками Private Sub … и End Sub :
Private Sub Quantity_AfterUpdate () Me.Fee = Round (Me.Quantity * Me.UnitPrice * 0,1, 2) Концевой переводник
- Установите для свойства After Update текстового поля UnitPrice значение [Процедура события] и нажмите кнопку «Построить».
- Введите эту строку:
Частная подгруппаPrice_AfterUpdate () Вызов Quantity_AfterUpdate Концевой переводник
Теперь при изменении Quantity или UnitPrice Access автоматически рассчитывает новую плату, но пользователь может отменить расчет и при необходимости ввести другую плату.
Если вас беспокоит, как пользователь может ввести вычисленную сумму с таким расположением, см. Ввод текста в вычисляемых элементах управления.
А как насчет вычисляемых полей в Access 2010?
Access 2010 позволяет поместить вычисляемое поле в таблицу, например:
Просто выберите «Рассчитано» в типе данных, и под ним появится выражение. Введите выражение. Затем Access будет рассчитывать его каждый раз, когда вы вводите свою запись.
Это может показаться простым, но это создает больше проблем, которые оно решает. Вы быстро обнаружите, что выражения ограничены. Вы также обнаружите, что это делает вашу базу данных бесполезной для всех, кому необходимо использовать ее в Access 2007. Вместо чтения данных они получат такое сообщение:
Что еще более серьезно, результаты расчетов ненадежны. Если вы измените выражение после того, как данные были введены в таблицу, существующие результаты могут быть обновлены некорректно (через новые записи обновляются правки), поэтому вы не можете полагаться на результаты.Компактность / ремонт не пересчитываются, поэтому нет очевидного способа исправить плохие результаты.
Поскольку вы все равно не можете индексировать вычисляемые поля, их использование не принесет никакой выгоды в производительности. Вы нарушаете фундаментальные правила нормализации данных без всякой пользы. Мы рекомендуем использовать запросы для вычисляемых полей, как и в предыдущих версиях.
Как работать с датой и временем в Microsoft Access
Советы по обеспечению того, чтобы даты правильно вводились и сохранялись в базе данных Access, а затем обрабатывались должным образом в формулах, формах, запросах и отчетах.
На этой странице:
Последнее обновление: 26 мая 2020 г., автор: Дэвид Уоллис.
Что такое дата
Подумайте, какой вы понимаете дату, когда читаете 24/09/2019. Вы и ваш компьютер, вероятно, согласны, что 24.09.2019 относится ко вторнику 24 сентября 2019 года.
Если вы работаете в Соединенных Штатах и думаете, что я британец, пишущий эту статью, вы можете предположить, что я имел в виду 24 сентября 2019 г.
А как насчет перевода 09.12.2019?
Принимая план дат, разработчик базы данных должен иметь в виду такие вопросы:
- Является ли запись Access даты ввода той же датой, которую хочет записать пользователь?
- Регистрируется ли зарегистрированная дата как одна и та же для всех пользователей базы данных?
- Правильно ли работают мои запросы, если они включают фильтры по датам или выражения, основанные на датах?
- Будут ли даты в отчетах, созданных базой данных и отправленных людям за пределами офиса, правильно понять получатели этих отчетов?
Настройки региона вашего компьютера
Большая часть реакции Access на дату и время определяется регионом , в котором установлен компьютер, который вы используете.Настройка находится в панели управления Windows 10: откройте панель управления и перейдите через Часы и регион —
.для отображения диалогового окна «Регион» —
Настройки, показанные выше, относятся к моему компьютеру, поставленному мне в Великобритании. Я не изменяю эти настройки по умолчанию по причинам, которые я объясню ниже. Я проиллюстрирую их здесь, потому что они влияют на результаты некоторых тестов, связанных с проведением Access дат и времени, которые указаны ниже.
Как разработчик базы данных, я никогда не настаиваю на том, чтобы клиент использовал один набор языковых предпочтений вместо другого. Я считаю, что я должен заставить базу данных правильно управлять датами и временем, независимо от того, какие изменения конкретный пользователь может сделать со своими настройками Windows.
Даты и время доступа
Access сохраняет введенные данные в поле даты / времени как число с плавающей запятой; то есть число с целой и десятичной частью. Целая часть — это дата , десятичная часть — время .
Целая часть числа, хранящегося в поле «Дата / время», относится к встроенному календарю Access, который работает с 1 января 100 г. н.э. по 31 декабря 9999 г. Access хранит 1 января 100 CE под номером -657434; 31 декабря 9999 г. н.э., as 2958465.
Считайте по одному на каждый день с 1 января 100 г. н.э. до даты, которую вы имеете в виду, и у вас есть количество магазинов Access, представляющее эту дату. Сосчитайте 43843, и вы будете 13 января 2020 года.
Десятичная часть числа, хранящегося в поле «Дата / время», представляет время как долю 24 часов.0,66666 представляет 15:59:59 — почти две трети пути в течение дня, на 15 часов 59 минут 59 секунд. Добавьте еще один десятичный знак — 0,66666 6 — для точного получения 16:00:00.
Число с цифрами слева и справа от десятичной точки — это то, как Access сохраняет дату и время вместе. Например, 44790,25 — это 6:00:00 17 августа 2022 года.
Изучение даты и времени в доступе
Вы можете использовать окно Immediate Window в редакторе Visual Basic Access, чтобы проверить, как Access работает с датами.Скопируйте и вставьте любой из примеров ниже в ваше окно Immediate Window, а затем нажмите Enter, чтобы увидеть результат .
? Формат (44790.25, «дд / мм / гггг чч: нн: сс AM / PM»)
17.08.2022 06:00:00
Функция Format (, дата , формат ) отображает значение, присвоенное ее первому аргументу — в данном случае 44790.25 — в формате, присвоенном второму аргументу.
Результат выглядит так, как я ожидал, потому что назначенный мной формат соответствует языковым настройкам, установленным на моем компьютере.
Что делать, если я испорчу назначенный формат?
? Формат (44790,25, «мм / дд / гггг чч: нн: сс AM / PM»)
17.08.2022 06:00:00
Access не волнует изменение формата. Форматирование носит косметический характер — только для внешнего вида. Для Access важно то, что дата — 44790.25.
Здесь мы опустили секунды и компоненты AM / PM:
? Формат (44790.25, «дд / мм / гггг чч: нн»)
17.08.2022 06:00
Форматпри необходимости настраивается на 24-часовой формат:
? Формат (44790.75, «дд / мм / гггг чч: нн»)
17.08.2022 18:00
Обратите внимание, что минуты обозначаются буквами «n», чтобы отличить их от «m» для месяцев.
Вот несколько примеров, демонстрирующих гибкость функции форматирования:
? Формат (44790,75, «дддд д мммм, гггг») «>
Среда 17 августа 8, 2022
? Формат (44790,75, «дд-ммм-гггг»)>
17 августа 2022 г.
? Формат (44790,75, «гггг-мм-дд»)
2022-08-17
«dddd» и «mmmm» заставляет Format указывать дни и месяцы полностью; «Ддд» и «ммм», только первые три буквы.
Функции даты и настоящего
ФункцияAccess и Date () VBA возвращает текущую дату, определяемую часами вашего компьютера:
? Формат (Дата (), «дд / мм / гггг чч: нн: сс AM / PM»)
14.01.2020 00:00:00
Date () возвращает целое число без десятичных знаков. Мы узнаем, что Access считает, что начало дня приходится на полночь.
Функция Now () возвращает текущую дату и время, определяемое часами вашего компьютера:
? Формат (Сейчас (), «дд / мм / гггг чч: нн: сс AM / PM»))
14.01.2020 16:57:48
Попробуйте этот пример через пару минут:
DateSerial Function
ФункцияAccess и DateSerial VBA ( год , месяц , день ) предоставляет средства для построения даты (то есть числа, которое Access использует для представления числа) из значений, присвоенных отдельно году, месяц и день в таком порядке.Это в промежуточном окне моего компьютера:
? DateSerial (2020,1,15)
15.01.2020
Access использовал настройки, заданные на моем компьютере, для форматирования результата как короткой даты. Мы можем продемонстрировать, что DateSerial возвращает число, как мы и ожидали:
? Формат (DateSerial (2020,1,15), «00000»)
43845
Тестирование любого компонента времени, мы узнаем, что DateSerial не предполагает ничего:
? Формат (DateSerial (2020,1,15), «00000.0000 «)
43845.0000
Даты и время в точке ввода
Если вы установите для свойства Тип данных поля в таблице Access значение «Дата / время», тогда Access отклонит вашу попытку ввести в это поле все, что он не может интерпретировать как дату или как дату и время.
Если вы введете в это поле дату или дату и время по шаблону, не совпадающему с шаблоном в настройках вашего региона, Access будет проявлять инициативу в интерпретации введенных вами данных.
По моему опыту, пользователь будет вводить дату и время так, как он привык. Он может использовать «Средство выбора даты» напротив текстового поля, если средство выбора доступно; или он может ввести «24/9/2019», «24/9» или «24/9/19» или любое другое мыслимое расположение знаков дня, месяца, года и разделения. Или он может скопировать и вставить.
Необходимо решить две проблемы с мужчинами:
- Что пользователь видит дату и время, которые Access записывает в результате своего ввода
- Что сохраненные дата и время — это то, что намеревается пользователем, а не ложные, возникшие в результате неправильного понимания входных данных Access.
Отсюда два следующих раздела.
Отображение дат на экране
Предположим, что пользователь вводит данные в текстовое поле формы; и предположим, что она вводит данные, используя любую выбранную технику. Мы воспользуемся этим фрагментом, взятым из ее формы счета-фактуры, чтобы проиллюстрировать влияние различных настроек в ее форме на отображение даты ввода:
Нижнее текстовое поле называется «tebInvoiceDate».tebInvoiceDate имеет в качестве источника управления поле InvoiceDate в таблице, в которой хранятся сведения о счетах-фактурах. Тип данных поля InvoiceDate установлен на Дата / время.
Эти три свойства tebInvoiceDate оставлены пустыми: Формат, Значение по умолчанию и Маска ввода.
Все гармонично: в Access сохранена дата 6 января 2020 года, как и предполагал пользователь.
Теперь какой-то заблуждающийся человек решает добавить в форму свои собственные дизайнерские штрихи и назначает мм / дд / гггг свойству Format текстового поля tebInvoiceDate:
Отображаемая дата счета-фактуры использует формат мм / дд / гггг, примененный вандалом к текстовому полю, а не дд / мм / гггг по умолчанию в региональных настройках компьютера.
😕 Конечно, это может ввести пользователя в заблуждение…
😡… и разочарование, когда пользователь возится с достижением даты, которая выглядит правильной, и при этом сохраняет неправильную .
Чтобы избежать путаницы, разочарования и ошибок, я предлагаю либо , чтобы оставить свойство Формат текстового поля пустым , либо , чтобы выбрать формат из списка в раскрывающемся списке свойства Формат:
Я уточню этот подход, рекомендуя, чтобы год был , всегда отображался в виде четырех, а не двух цифр.Это личное предпочтение, основанное на опыте работы с базами данных, в которых хранятся даты, сделанные много лет назад или в будущем.
Например, запись о сотруднике в базе данных HR. Его дата рождения — «20/2/49» — это 20 февраля 1949 года, а не 20 февраля 2049 года, как это хранится в базе данных:
? Формат (# 20/02/49 #, «дд / мм / гггг»)
20.02.2049
Пример из другой базы данных: пользователь ввел то, что он намеревался сделать 19 ноября 2008 года, набрав «19/11/08».Вы правильно догадываетесь, что из этого сделал Access?
? Формат (# 19/11/08 #, «дд / мм / гггг»)
11.08.2019
Символ # указывает функции Format, что значение, которое она оценивает, является датой.
Вы можете разработать набор правил, основанный на проблемах, поднятых выше:
- Не возитесь с региональными настройками компьютера в Windows
- Не применяйте настраиваемые форматы к элементам управления в формах, отображающих даты
- Если нужно применить формат даты к элементу управления, выберите нужный из раскрывающегося списка в свойстве Format элемента управления.То же самое относится к элементам управления для ввода времени, даты и времени
- Отображать год в виде четырех цифр, а не двух.
Хранение даты и времени
При проектировании таблиц разработчик имеет возможность назначать или нет формат любому полю даты / времени. Я не испытал большого преимущества в применении формата.
Более того, я получил базы данных для преобразования и обновления, в которых форматы, применяемые к полям даты и времени, вызвали ненужную работу по проверке того, не мешают ли они предполагаемому запуску форм, запросов и отчетов.
Отсюда моя рекомендация:
- Не применяйте формат ни к каким полям даты и времени в таблицах.
Настройки даты и времени по умолчанию
Вы можете установить свойство «Значение по умолчанию» для элемента управления в форме и поля в таблице.
Вы можете счесть полезным для пользователя предварительно заполнить поле даты / времени сегодняшней датой в новой записи, например, для получения заказа. В таком случае используйте функцию Date () по умолчанию.
Применяйте функцию «Сейчас ()» только тогда, когда вам необходимо записать время. В разделе о фильтрах даты и времени в запросах ниже я объясняю, почему не рекомендуется использовать Now (), когда вы хотите записывать только дату.
Правила валидации
В поле «Дата / время» в таблице Access сохраняет дату четверга, 23 января 2020 года, как число 43853. Он сохраняет 6:00 утра четверга, 23 января 2020 года, как 43853,25.
Один из способов помочь пользователю ввести дату без компонента времени — это назначить правило для свойства Validation Rule этих полей.Если поле, о котором идет речь, называется «DrawdownDate», то это одно выражение, которое вы могли бы назначить его правилу проверки:
([DrawdownDate] -Int ([DrawdownDate])) = 0Если пользователь вводит что-либо, что, по мнению Access, имеет компонент времени, Access не позволит пользователю покинуть это поле до тех пор, пока он не настроит ввод только на дату, а не на время.
Если пользователю должно быть разрешено оставить это поле без какого-либо значения данных, тогда Правило проверки необходимо расширить:
(([DrawdownDate] -Int ([DrawdownDate])) = 0) Или IsNull ([DrawdownDate])Добавление сообщения типа «Введите только дату, без времени» в свойство текста проверки поля избавит пользователя от непонятных сообщений из Access, когда он нарушит ваше правило проверки.
Даты в отчетах
Еженедельный отчет о закупках
за неделю, начинающуюся 20.04.20
дд / мм / гггг и мм / дд / гггг всегда были популярными свойствами формата. ОК, если ваша база данных используется исключительно локально. Нет, если ваша база данных выводит отчеты в виде PDF-файлов, которые вы отправляете получателям в других частях мира.
Еще больше запутывают форматы дд / мм / гг и мм / дд / гг. Как вы думаете, к какой дате в заголовке отчета, прикрепленном к полученному вами электронному письму, относится «20.04.20»?
Несомненно, формат, который передает дату одинаково для всех, является разумным подходом, который следует принять: дд мммм гггг, дддд дд мммм гггг или рекомендация ISO 8601 гггг-мм-дд, например.
Еженедельный отчет
за неделю с 20 апреля 2020 г.
Фильтры даты в запросах
Рассмотрим запрос с именем «qsDeals», который выбирает сделки из таблицы с именем «tblDeals»:
По этому запросу создается таблица с перечислением Сделок за 2019 год:
Теперь применим фильтр для Сделок, заключенных в среду, 9 октября 2019 г. Обратите внимание, что для включения даты в фильтр, дата должна иметь префикс и суффикс с символом #:
Все в порядке, потому что дата в фильтре соответствует региональной настройке краткой даты — дд / мм / гггг — используемого компьютера:
Что вы, как разработчик, должны иметь в виду, так это результат этого запроса, когда он выполняется на компьютере с региональными настройками краткой даты мм / дд / гггг.Вы получите предложения на вторник, 10 сентября 2019 г.
Чтобы избежать подобных ситуаций, можно рассмотреть возможность использования функции Access DateSerial ( год , месяц , день ). Фильтр для 9 октября 2019 года будет DateSerial (2019,10,9), что гарантирует отсутствие неопределенности относительно того, какая дата действует, какие бы региональные настройки ни действовали.
Выражения в фильтрах запросов для дат
Используемая для фильтрации дат в запросе, функция DateSerial ( год , месяц , день ) принимает выражения.В этом примере выполнение запроса представляет пользователю сообщение с запросом месяца, для которого нужно отфильтровать записи:
> = DateSerial (2019, [Номер месяца?], 1) И Это делает запрос универсальным, поскольку пользователь может выбрать месяц, не изменяя запрос. Если вы хотите, чтобы год также был отфильтрован: > = DateSerial ([Год?], [Номер месяца?], 1) И Выводит пользователю эти два сообщения: Если вы скопируете и вставите указанный выше фильтр, убедитесь, что в вашем запросе все они находятся в одной строке той же ячейки критериев.Находясь в этой ячейке, Shift + F2 открывает диалоговое окно Zoom, которое упрощает работу с вашим критерием: Предупреждение Если вы выполняете фильтрацию по полю даты, в которое были введены и данные, и время, прочтите следующую тему! Рассмотрим запрос qsDeals на основе таблицы, в которую пользователи вводят сочетание дат и даты и времени в поле DrawdownDate таблицы. Вот правильно отфильтрованный набор данных на 1 сентября 2019 г. (Великобритания): Теперь посмотрите результат применения простого фильтра # 01/09/2019 # (формат даты в Великобритании) к тем же данным: Если такого результата вы не ожидали, значит, вы не единственный.Мне приходилось сталкиваться с рядом отчетов, предназначенных для ежедневного представления информации. Отчеты были совершенно неточными просто потому, что их разработчики не предусмотрели способ хранения дат в Access и, следовательно, способы их запроса. Подобные ошибки, которые меня попросили исправить, произошли в отчетах по времени, например модули регистрации вызовов в базах данных, предназначенные (предположительно) для отчетов о вызовах, упорядоченных по сменам. На первый взгляд использование выражения Between …… And …… может показаться идеальным способом фильтрации по диапазону дат.Например, между # 01.09.2019 # и # 30.09.2019 # для доставки записей за сентябрь 2019 года. Спросите себя, что этот фильтр вернет, если записи содержат и дату, и время. Будет ли он включать или исключать 30 сентября 2019 10:30 из результатов? Во всех случаях я предпочитаю конструкцию> = …… И …… Между …… И ……. Еще одно предостережение относительно «промежуточных»: когда вы получаете такой запрос, как «Отчет, пожалуйста, по всем заказам на сумму от 5 000 до 10 000». Всегда лучше всего точно выяснить, что требуется от отчета. Будет ли включен заказ на сумму 5 000 .00? Входит ли заказ в размере 10 000,00 фунтов стерлингов в запрошенный отчет или в другой для «заказов на большую стоимость»? Пожалуйста, поддержите этот веб-сайт, сделав пожертвование, чтобы избавить его от рекламы и помочь покрыть затраты времени на добавление нового контента. Сделать взнос через PayPal в фунтах стерлингов (£ стерлингов) — Сделать взнос через PayPal в долларах США ($ US) — Если вы хотите получить счет для вашего пожертвования, сообщите мне, сколько вы жертвуете — Счет-фактура Спасибо, в ожидании . На этой странице Дата и время фильтрации
Остерегайтесь
Ваша поддержка для dmw TIPS
Индексирование и выбор данных — документация pandas 1.2.1
.