Как сделать расчет в access
Функции вычисления и отображения значений даты и времени в Access
Материал, изложенный в данной статье, требует наличия базовых знаний по использованию макросов и программированию.
Аннотация
Значение даты и времени хранится как число двойной точности, поэтому при выполнении операций над значениями даты и времени в выражении результаты могут быть отформатированы некорректно. В данной статье демонстрируется создание выражений и пользовательских функций для отображения определенных дат и расчета интервалов времени.
Корпорация Майкрософт приводит примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для применения в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Специалисты служб технической поддержки Майкрософт могут пояснить назначение тех или иных конструкций кода в конкретном примере, но модификация примеров и их адаптация к задачам заказчика не предусмотрена.
Дополнительная информация
Отображение определенных дат
Для отображения определенных дат можно использовать функцию DateSerial(), позволяющую работать с элементами даты: днем, месяцем и годом. Например, для возврата определенных дат можно использовать приведенные ниже выражения в свойстве ControlSource текстового поля или в области проверки.
DateSerial(Year(Date()), Month(Date()), 1)
DateSerial(Year(Date()), Month(Date()) + 1, 1)
Последний день текущего месяца:
DateSerial(Year(Date()), Month(Date()) + 1, 0)
Последний день следующего месяца:
DateSerial(Year(Date()), Month(Date()) + 2, 0)
Первый день предыдущего месяца:
Последний день предыдущего месяца:
Первый день текущего квартала:
Последний день текущего квартала:
Первый день текущей недели (началом недели считается воскресенье):
Последний день текущей недели:
Первый день текущей недели (используются настройки, заданные в диалоговом окне «Параметры»):
Последний день текущей недели:
Дополнительные сведения о вычислении финансового года или финансового месяца см. в следующей статье базы знаний Майкрософт:
210249 Как определить финансовый год или месяц, соответствующий определенной дате, в Access 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)ВНИМАНИЕ! Выполнение описанных в этом примере действий приводит к изменению учебной базы данных Northwind.mdb. Рекомендуется создать резервную копию файла Northwind.mdb и выполнять эти действия, используя копию базы данных.
Расчет интервалов времени
Поскольку значение времени хранится как доля 24-часовых суток, при сложении, вычитании, умножении или делении временных интервалов длительностью более 24 часов результат может быть отформатирован неверно.
Например, если попытаться узнать число часов между двумя датами путем вычитания значений в Visual Basic, можно получить неверное число. Чтобы убедиться в этом, введите в области проверки следующий код и обратите внимание на то, что будет возвращено значение 0:00 вместо верного значения 53:00:
Для решения проблем с форматированием, которые возникают при работе со значениями времени, превышающими 24 часа, можно использовать функции Visual Basic Int() и CSng(), позволяющие разделить вычисленное значение времени на дни, часы, минуты и секунды. Например, чтобы создать отдельные переменные для этих значений, можно использовать в функции следующий код:
Переменные totalhours, totalminutes и totalseconds можно использовать для отображения значения времени в часах, минутах или секундах. Переменные days, hours, minutes и seconds позволяют разделить значение времени на части: дни, часы, минуты и секунды. Для отображения значений времени в разных форматах эти переменные можно объединять, как показано в приведенных ниже образцах функций.
Функция GetElapsedDays() вычисляет интервал времени между двумя значениями даты/времени и представляет результат в днях.
Функция GetElapsedTime() вычисляет интервал времени между значениями времени и представляет результат в днях, часах, минутах и секундах.
Функция GetTimeCardTotal() суммирует поле значений времени в таблице и представляет результат в часах и минутах.
Пример функции GetElapsedDays()
Чтобы создать функцию GetElapsedDays(), выполните перечисленные ниже действия.
Откройте учебную базу данных Northwind.mdb.
Создайте модуль и введите в разделе описаний следующую строку (если ее там еще нет):
Введите следующую функцию:
Для проверки этой функции создайте новый запрос для таблицы «Заказы».
Добавьте в таблицу запросов следующие поля:
Поле: ShippedDate
Показать: True
Поле: OrderDate
Показать: True
Поле: ElapsedTime: GetElapsedDays([ShippedDate]-[OrderDate])
Показать: True
Выполните запрос. Обратите внимание, что в столбце ElapsedTime отобразится число дней между датами ShippedDate и OrderDate для каждой записи в таблице «Заказы».
Учебная функция GetElapsedTime()
Чтобы создать функцию GetElapsedTime(), выполните перечисленные ниже действия.
Создайте таблицу с описанной ниже структурой и сохраните ее под именем TimeLog.
Таблица: TimeLog
————————
Имя поля: StartTime
Тип данных: Дата/время
Формат: Полный формат даты
Имя поля: EndTime
Тип данных: Дата/время
Формат: Полный формат даты
Откройте таблицу TimeLog в режиме таблицы, введите три приведенные ниже записи и закройте таблицу.
StartTime EndTime
———————————————
5/10/95 4:57:00 PM 5/15/95 2:38:00 AM
5/11/95 10:17:31 AM 5/24/95 6:05:00 PM
5/18/95 9:16:43 AM 5/19/95 5:03:00 PM
Создайте модуль и введите в разделе описаний следующую строку:
Введите следующую функцию:
Примечание. Функции GetElapsedTime необходимо передать дату и время.
Чтобы протестировать эту функцию, создайте новый отчет для таблицы TimeLog с помощью мастера автоотчета.
Откройте отчет в режиме конструктора.
Добавьте в разделе сведений о таблице TimeLog свободное текстовое поле и настройте его свойства следующим образом:
Textbox
—————
Имя: ElapsedTime
ControlSource: =GetElapsedTime([EndTime]-[StartTime])
Ширина: 3 дюйма
Просмотрите отчет. Обратите внимание на то, что в каждой записи будет отображено общее истекшее время в днях, часах, минутах и секундах.
Учебная функция GetTimeCardTotal()
Чтобы создать функцию GetTimeCardTotal(), выполните перечисленные ниже действия.
Примечание. В представленном образце кода использованы объекты доступа к данным (Microsoft). Для правильного выполнения этого кода требуется ссылка на библиотеку объектов Microsoft DAO 3.6. Для этого в редакторе Visual Basic в меню Сервис выберите команду Ссылки и убедитесь в том, что установлен флажок Библиотека объектов Microsoft DAO 3.6.
Создайте таблицу со следующей структурой и сохраните ее под именем TimeCard.
Таблица: TimeCard
————————
Имя поля: Daily Hours
Тип данных: Дата/время
Формат: Краткий формат времени
Откройте таблицу TimeCard в режиме таблицы, введите четыре приведенные ниже записи и закройте таблицу.
8:15
7:37
8:12
8:03
Создайте модуль и введите в разделе описаний следующую строку (если ее там еще нет):
Введите следующую функцию:
Чтобы протестировать эту функцию, введите в область проверки приведенную ниже строку и нажмите клавишу ВВОД:
Обратите внимание на то, что в области проверки будет отображено значение 32 часа и 7 минут.
Ссылки
Дополнительные сведения о вычислении значений даты/времени см. в следующей статье базы знаний Майкрософт:
210276 Хранение, вычисление и сравнение данных в формате даты/времени в Microsoft Access
Подсчет данных при помощи запроса
В этой статье описано, как подсчитать данные, возвращаемые запросом. Например, в форме или отчете можно подсчитать количество элементов в одном или нескольких полях таблицы или элементах управления. Вы также можете вычислять средние значения, находить наибольшее и наименьшее значения, самую давнюю и самую последнюю дату. Кроме того, в Access предусмотрено средство, называемое строкой итогов, с помощью которого можно подсчитывать данные в таблице, не изменяя структуру запроса.
Выберите нужное действие
Способы подсчета данных
Подсчитать количество элементов в поле (столбце значений) можно с помощью функции Число. Функция Число принадлежит к ряду функций, называемых агрегатными. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. Кроме функции Число, в Access есть следующие агрегатные функции:
Сумма для суммирования столбцов чисел;
Среднее для вычисления среднего значения в столбце чисел;
Максимум для нахождения наибольшего значения в поле;
Минимум для нахождения наименьшего значения в поле;
Стандартное отклонение для оценки разброса значений относительно среднего значения;
Дисперсия для вычисления статистической дисперсии всех значений в столбце.
В Access предусмотрено два способа добавления функции Count и других агрегатных функций в запрос. Вы можете:
Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов позволяет использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.
Создать итоговый запрос. В итоговом запросе вычисляются промежуточные итоги по группам записей. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж. С другой стороны, с помощью строки итогов можно вычислить общий итог для одного или нескольких столбцов (полей) данных.
Примечание: Ниже в разделах этой статьи подробно описано применение функции Сумма, однако следует помнить, что вы можете использовать другие агрегатные функции в строках итогов и запросах. Дополнительные сведения об использовании других агрегатных функций см. ниже в разделе Справочные сведения об агрегатных функциях.
Дополнительные сведения о способах использования других агрегатных функций см. в разделе Отображение итогов по столбцу в таблице.
В следующих разделах описаны шаги, которые следует выполнить, чтобы добавить строку итогов, а также описывается использование итогового запроса для подсчета данных. Следует обратить внимание на то, что функция Число работает с большим числом типов данных, чем другие агрегатные функции. Функцию Число можно использовать для любого типа полей, кроме тех, которые содержат сложные повторяющиеся скалярные данные, например поле с многозначными списками.
С другой стороны, многие агрегатные функции работают только с данными в полях, имеющих определенный тип данных. Например, функция Сумма работает только с типами данных «Число», «Действительное» и «Денежный». Дополнительные сведения о типах данных, требуемых для каждой функции, см. ниже в разделе Справочные сведения об агрегатных функциях.
Общие сведения о типах данных см. в статье Изменение типа данных для поля.
Подсчет данных с помощью строки итогов
Чтобы добавить в запрос строку итогов, откройте его в режиме таблицы, добавьте строку, а затем выберите функцию Число или другую агрегатную функцию, например Сумма, Минимум, Максимум или Среднее. В этом разделе объясняется, как создать простой запрос на выборку и добавить строку итогов.
Создание простого запроса на выборку
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
Дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе, а затем нажмите кнопку «Закрыть».
Выбранные таблицы отображаются в виде окон в верхней части конструктора запросов. На рисунке показана типичная таблица в конструкторе запросов.
Дважды щелкните поля таблицы, которые вы хотите использовать в запросе.
Вы можете включить поля, содержащие описательные данные, например имена и описания, но следует обязательно добавить поле, содержащее подсчитываемые значения.
Каждое поле отображается в столбце в бланке запроса.
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Результаты запроса отображаются в режиме таблицы.
При необходимости переключитесь в Конструктор и скорректируйте запрос. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Конструктор. После этого можно изменить запрос, добавив или удалив поля таблицы. Чтобы удалить поле, выберите столбец в бланке запроса и нажмите клавишу DELETE.
При необходимости вы можете сохранить запрос.
Добавление строки итогов
Откройте запрос в режиме таблицы. Если база данных имеет формат ACCDB, щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Режим таблицы.
Если используется база данных в формате MDB, созданная в более ранней версии Access, на вкладке Главная в группе Режимы щелкните стрелку под кнопкой Режим и выберите значение Режим таблицы.
Дважды щелкните запрос в области навигации. Запрос будет выполнен, а его результаты будут загружены в таблицу.
На вкладке Главная в группе Записи нажмите кнопку Итоги.
Под последней строкой данных в таблице появится новая строка Итог.
В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.
Скрытие строки итогов
На вкладке Главная в группе Записи нажмите кнопку Итоги.
Дополнительные сведения об использовании строки итогов см. в разделе Отображение итогов по столбцу в таблице.
Подсчет данных с помощью итогового запроса
Когда нужно подсчитать некоторые или все записи, возвращаемые запросом, то вместо строки итогов можно воспользоваться итоговым запросом. Например, вы можете подсчитать общее число сделок или число сделок в отдельном городе.
Как правило, итоговый запрос применяется вместо строки итогов тогда, когда требуется использовать значение результата в другой части базы данных, например в отчете.
Подсчет всех записей в запросе
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
Дважды щелкните таблицу, которую вы хотите использовать в запросе, и нажмите кнопку «Закрыть».
Таблица появится в окне в верхней части конструктора запросов.
Дважды щелкните поля, которые вы хотите использовать в запросе, и убедитесь, что включено поле, количество в которое нужно подсчитать. Можно подсчитать поля большинства типов данных, за исключением полей, содержащих сложные повторяющиеся скалярные данные, такие как поле многомерных списков.
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке появится строка Итог, а в строке для каждого поля запроса будет указано Группировка.
В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Результаты запроса отображаются в режиме таблицы.
При необходимости вы можете сохранить запрос.
Подсчет записей в группе или категории
На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов.
Дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе, а затем нажмите кнопку «Закрыть».
Таблица (или таблицы) появится в окне в верхней части конструктора запросов.
Дважды щелкните поле, содержащее данные категории, а также поле, значения в котором вы хотите подсчитать. Запрос не может содержать других описательных полей.
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке появится строка Итог, а в строке для каждого поля запроса будет указано Группировка.
В строке Итог щелкните поле, по которому вы хотите выполнить подсчет, и выберите в списке функцию Count.
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Результаты запроса отображаются в режиме таблицы.
При необходимости вы можете сохранить запрос.
Справочные сведения об агрегатных функциях
В следующей таблице перечислены и отписаны агрегатные функции Access, которые можно использовать в строке итогов и в запросах. Помните, что в Access предусмотрено больше агрегатных функций для запросов, чем для строки итогов. Кроме того, при работе с проектом Access (внешней базой данных Access, которая подключается к базе данных Microsoft SQL Server) можно использовать расширенный набор агрегатных функций, предоставляемый SQL Server. Дополнительные сведения о них см. в электронной документации Microsoft SQL Server.
Поддерживаемые типы данных
Суммирует элементы в столбце. Подходит только для числовых и денежных данных.
«Число», «Действительное», «Денежный»
Вычисляет среднее значение для столбца. Столбец должен содержать числовые или денежные величины или значения даты или времени. Функция игнорирует пустые значения.
«Число», «Действительное», «Денежный», «Дата/время»
Подсчитывает число элементов в столбце.
Все типы данных, за исключением сложных повторяющихся скалярных данных, таких как столбец многозначных списков.
Дополнительные сведения о списках, которые могут быть многоценными, см. в руководстве по полям, которые могут быть многоценными, а также к созданию или удалите многофаентное поле.
Возвращает элемент, имеющий наибольшее значение. Для текстовых данных наибольшим будет последнее по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.
«Число», «Действительное», «Денежный», «Дата/время»
Возвращает элемент, имеющий наименьшее значение. Для текстовых данных наименьшим будет первое по алфавиту значение, причем Access не учитывает регистр. Функция игнорирует пустые значения.
«Число», «Действительное», «Денежный», «Дата/время»
Показывает, насколько значения отклоняются от среднего.
Дополнительные сведения об этой функции см. в статье Отображение итогов по столбцу в таблице.
«Число», «Действительное», «Денежный»
Вычисляет статистическую дисперсию для всех значений в столбце. Подходит только для числовых и денежных данных. Если таблица содержит менее двух строк, Access возвращает пустое значение.
Дополнительные сведения о функциях для расчета дисперсии см. в разделе Отображение итогов по столбцу в таблице.
Как сделать калькулятор в access?
В этой статье речь поговорим про вычисляемые поля в запросах Access. В запросе, как и в таблице, для каждой записи могут производиться вычисления с числовыми, строковыми значениями или значениями дат с использованием данных из одного или нескольких полей. Результат вычисления образует в таблице запроса новое вычисляемое поле. В отличие от вычисляемых полей таблицы, вычисляемые поля запроса в исходных таблицах базы данных новых полей не создают. При каждом выполнении запроса производятся вычисления на основе текущих значений полей.
В выражениях вычисляемых полей помимо имен полей могут использоваться константы и функции. В результате обработки выражения может получаться только одно значение.
Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.
Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.
Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В таблице НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).
Для закрепления смотрим видеоурок:
Параметрический запрос Access тут.
Приветствую!
Если вы время от времени работаете на компьютере с цифрами, то, возможно, у вас имеется необходимость в использовании калькулятора. В операционной системе Windows имеется встроенный калькулятор и в этом руководстве будет рассказано, как его открыть.
Открыть калькулятор из списка программ
Нажав на кнопку Пуск, отобразится меню. При нажатии в нём «Все программы», будет отображён список имеющихся на компьютере утилит. Среди них в обязательном порядке должен быть Калькулятор. Для быстрого отображения данного приложения вы можете в находящейся там же строке поиска ввести Калькулятор.
Отобразится одноимённое приложение, вам останется запустить его.
В результате вы увидите окно калькулятора, в котором сможете произвести необходимые расчёты.
Открыть калькулятор через системную команду
На клавиатуре наберите комбинацию Win + R, в результате которой отобразится системное окно Выполнить.
В нём введите текст «calc.exe» (без кавычек), а после нажмите клавишу Enter. В результате будет открыто окно калькулятора.
Быстрый вызов калькулятора
Вы можете создать ярлык с приложением Калькулятор на рабочем столе. Для этого зажмите мышкой и перетащите ярлык приложения, что имеется в меню Пуск, на рабочий стол.
После чего откройте свойства ярлыка и в поле Быстрый вызов: введите желаемую комбинацию клавиш, при нажатии на которую, открывался бы Калькулятор.
Теперь вы сможете как быстро вызывать Калькулятор с ярлыка, так и по нажатию комбинации клавиш клавиатуры. Очень удобно!
Инструкция является универсальной и подходит для самого как прошлых версий Windows (XP, Vista, 7, 8, 8.1), так и последней Windows 10.
Если у вас остались вопросы, я буду рад ответить на них в комментариях к материалу.
Visual Basic 6.0 является языком программирования, разработанный Microsoft, который может легко изучить и использовать новичок, а также опытные программисты. Хотя он больше не поддерживается корпорацией Microsoft, тысячи приложений еще работают на нем и многое другое программное обеспечение все еще разрабатывается. Это руководство покажет вам, как создать простой калькулятор в Visual Basic 6.0.
Проекты Standard EXE дают вам несколько команд и инструментов, полезных для разработки простых, а также полу-сложных программ.
В центре экрана будет поле с большим количеством точек. Это ваша форма.Форма — это место, куда вы будете добавлять различные элементы (кнопки команд, картинки, текстовые поля и т.д.) к вашей программе.
Создайте текстовое поле справа от первой метки. Удалите текст, который появляется внутри текстового поля, изменив пустующее поле «Text» в окне свойств.
Создайте еще одну метку и измените заголовок на «Enter second number», и создайте еще одно текстовое поле для нее справа.
Перетащите и создайте четыре командные кнопки ниже этих двух меток. Измените заголовок этих командных кнопок на «Add», «Subtract», «Multiply», «Divide» соответственно.
Создайте еще одну метку с надписью «Result» и текстовое поле справа от нее под кнопками четырех команд. Это текстовое поле будет использоваться для отображения результата. При этом ваш проект будет завершен.
Вас перекинет в окно кодирования.
Код будет выглядеть следующим образом:
Код будет выглядеть следующим образом:
Кодирование будет выглядеть следующим образом:
Кодирование будет выглядеть следующим образом:
Сохраните проект и свою форму. Создайте свой проект и сохраните его в виде .exe файла на своем компьютере; запустите его, когда вы хотите!