Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124

Расчет выслуги

26.01.2018, 21:58. Показов 4660. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как составить формулу для расчета выслуги с учетом что год=360 дней, месяц=30 дней.
В Microsoft Excel есть формулы:
=ДНЕЙ360(конечная дата;начальная дата) - расчет разницы в днях
=ЦЕЛОЕ(количество дней/360) - расчет лет
=ЦЕЛОЕ((количество дней-количество лет*360)/30) - расчет месяцев
=количество дней-количество лет*360-количество месяцев*30 - расчет дней
Вот и ни как не додумаю как это рассчитать в Access?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2018, 21:58
Ответы с готовыми решениями:

Подсчет выслуги лет
Здравствуйте. Опять нужна Ваша помощь. В форме есть поле , поле , и вычисляемое поле «Период», поле с вводимым значением «Льгота» и...

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

Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций
Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. На СИ

38
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2018, 08:30
Лучший ответ Сообщение было отмечено 368800 как решение

Решение

Студворк — интернет-сервис помощи студентам
368800, Таблица количества выслуги не нужна. Она может стать неактуальной когда в данные вносятся поправки. Необходим и достаточен запрос, подсчитывающий суммарную выслугу. Правда, Вы не сказали, что надо делать с полем Коэффициент. Поэтому пока без него.
Запрос Dney360 поправлен на случаи когда сумма месяцев больше 12 и сумма дней больше 30. В этих случаях добавляется к годам и месяцам соответственно.
Запрос Period360 считает количества по каждой записи в Периоды службы. Коэффициент опять таки не учтен, не знаю как.
В форме Люди заменены источники подформ во вкладке Расчет выслуги. В верхней подформе источником стал запрос Dney360 - суммарное количество по человеку, в нижней подформе источник запрос Period360
Вложения
Тип файла: rar КАДРЫ_v1.rar (67.9 Кб, 7 просмотров)
1
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 09:57  [ТС]
Коэффициент это число на которое умножается число дней за период. Тоесть с 1 по 2 число получается 1 день и это умножается на коэффициент.

Добавлено через 1 минуту
Короче говоря коэффициент это день за два, день за три и т.д.
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 13:35  [ТС]
При попытке редактирования периодов службы выскакивает ошибка и требует остановить макрос.
Миниатюры
Расчет выслуги  
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 13:59  [ТС]
С ошибкой вроде разобрался. Просто в подчиненной форме стояли еще и мои формулы для подсчета периода, просто удалил их и вроде все заработало. Вот еще бы сделать чтоб периоды службы в днях умножались на коэффициент и вообще была бы сказка.
И еще при вводе данных в периоды службы подсчет дней ведется сразу и данные автоматически обновляются, а вот в верхней строке данные обновляются только при закрытии и вновь открытии формы ЛЮДИ.
Миниатюры
Расчет выслуги  
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 14:04  [ТС]
Уважаемый mobile, при вводе данных в периоды службы подсчет дней ведется сразу и данные автоматически обновляются, а вот в верхней строке данные обновляются только при закрытии и вновь открытии формы ЛЮДИ. И пожалуйста можете еще дописать в модуль чтоб дни выслуги по периодам умножались на коэффициент.
Вложения
Тип файла: rar КАДРЫ_v2.rar (67.8 Кб, 4 просмотров)
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 14:08  [ТС]
Фора ЛЮДИ
Миниатюры
Расчет выслуги  
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2018, 14:49
Лучший ответ Сообщение было отмечено 368800 как решение

Решение

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

Насчет ошибки при изменении вычисляемого поля. Оно расчетное, менять его нельзя. Сделал поля на расчетных значениях недоступными для редакции.
Вложения
Тип файла: rar КАДРЫ_v2.rar (71.7 Кб, 6 просмотров)
2
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 15:38  [ТС]
mobile, Все прекрасно но остается один маленький нюанс. При вводе данных в форму периоды службы дни по периодам считаются, а вот общее количество в верху формы люди автоматом не обновляются. Если не затруднит можно сделать чтоб и общее количество дней месяцев и лет, все что находится вверху формы ЛЮДИ также автоматом обновлялось.
Миниатюры
Расчет выслуги  
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2018, 16:06
Цитата Сообщение от 368800 Посмотреть сообщение
При вводе данных в форму периоды службы дни по периодам считаются, а вот общее количество в верху формы люди автоматом не обновляются.
Для этого надо на событии После обновления подформы службы записать команду обновления подформы общего количества
Visual Basic
1
2
3
Private Sub Form_AfterUpdate()
    Me.Parent![Подчиненная форма период службы запрос].Form.Requery
End Sub
Удалил макросы на полях подформы, считающие выслугу. Он давали ошибку, поскольку поле расчетное. Да и не нужны они совсем, все считается в запросе
Вложения
Тип файла: rar КАДРЫ_v3.rar (75.3 Кб, 15 просмотров)
1
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
30.01.2018, 16:12
Цитата Сообщение от mobile Посмотреть сообщение
Он давали ошибку, поскольку поле расчетное.
у меня возник вопрос
--время службы с 1 марта 2015 по 3 марта 2017

какой будет стаж -
--2 года и 2 дня
--или 2 года и 13-14 дней(по 5-6 плюсовых дней в конце года)
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 16:17  [ТС]
shanemac51, 2 года и два дня должно быть.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,962
Записей в блоге: 4
30.01.2018, 16:29
еще вопрос такого же плана
--время службы с 3 января 2015 по 27 декабря 2015(359 дней) -11 мес-29 дней
--время службы с 3 января 2015 по 27 декабря 2016(360 дней) 1 год-0-0
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 17:10  [ТС]
--время службы с 3 января 2015 по 27 декабря 2015(359 дней) -11 мес-29 дней --- 354 дня или 11 мес 24 дня
--время службы с 3 января 2015 по 27 декабря 2016(360 дней) 1 год-0-0 --- 715 дней или 1 год 11 мес 24 дня
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 17:19  [ТС]
mobile, нашел маленький косячек. При расчетах вылезает лишний день. То есть с 1 числа по 2 число должен быть 1 день а получается 2. И с 01.01.2015 по 01.01.2016 получается 361 день или 1 год и 1 день, а должен быть 1 год или 360 дней. Я так думаю нужно просто при расчете дней в каждом периоде у количества дней просто отнять 1 день.
В остальном все прекрасно работает.
Миниатюры
Расчет выслуги  
0
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 17:29  [ТС]
Как бы так.
Миниатюры
Расчет выслуги  
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2018, 17:31
Цитата Сообщение от 368800 Посмотреть сообщение
mobile, нашел маленький косячек. При расчетах вылезает лишний день.
Я предположил, что действует модель "день вступления+день выбытия=2 дня". А у Вас, видимо, иная модель расчета: "день вступления+день выбытия=1 день". Исправить легко. В функции Dni360Coff, в строке dtD = Int(Data2 - dtM) + 1 удалите +1:
Visual Basic
1
dtD = Int(Data2 - dtM)
1
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 18:26  [ТС]
mobile, В чем то вы правы. Просто при расчете выслуги считается "день вступления+день выбытия=1 день", а при расчете пенсии и других как вы сделали "день вступления+день выбытия=2 дня".
Огромное спасибо за проделанную работу. Буду допиливать базу дальше.
Я правильно понял:
Period360 - это расчет дней по периодам
Period360Coff - это расчет дней по периодам с учетом коэффициента
Dney360 - расчет всего дней, а также лет месяцев и дней
Dney360Coff - расчет всего дней с учетом коэффициента, а также лет месяцев и дней с учетом коэффициента.
То есть так как мне требуются расчеты выслуги с учетом коэффициента можно удалить запросы Period360 и Dney360 или они на что то повлияют?
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
30.01.2018, 19:43
Да, наверное Period360 и Dney360 можно удалять. Они не учитывают коэффициент и практически бесполезны для Вас.

Добавлено через 53 секунды
А также и функцию Dni360. Она также не учитывает коэффициенты
1
10 / 10 / 8
Регистрация: 30.06.2015
Сообщений: 124
30.01.2018, 19:44  [ТС]
Огромнейшее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2018, 19:44

Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций.
День добрый товарищи специалисты, помогите пожалуйста с примером m=((1/n)*\sum_{i=1}^{n}{x}_{i}){}^{2}-\sum_{i=1}^{n}{x}_{i} ,n=5 ф-ция...

Расчет цепи несинусоидального тока и расчет переходного процесса
Хотелось уточнить правильность решения задачи... Задача 3. Для 0-ой гармоники i0=u0/R, i0=18/3=6 A; Для 1-ой гармоники...

Расчет выручки и расчет расходов нефтяной компании "Лукойл" за 2013-2014 годы
нужен расчет выручки и расчет расходов нефтяной компании "Лукойл" за 2013-2014 года

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru