Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вычесление полей с типом "дата"
 
 автор: kinski   (08.02.2011 в 20:10)   личное сообщение
 
 

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

1. Получается мне необходимо выполнять расчет с полями, тип которых "дата" и мне нужно, чтобы разница была целым числом (1, 2 и т.д.). Т.е. грубо говоря в форме необходимо вычисляемое поле, где текущая дата - дата подачи заявки = 1 (2, 3, 4 и т.д.). В зависимости от этой разницы платится разная пошлина.

2. Также необходимо поле, которое будет считать общую сумму выплат. Т.е. если разница = 5, то поле должно показывать сумма пошлин за 1, 2, 3, 4 и 5 года.

3. Необходимо указывать срок очередной выплаты (это дата полачи заявки только на текущий год) и соответственно критическая дата или нет (критическая - 3 месяца до окончания года действия оплаты пошглины). Вроде все объяснила. Если надо могу выслать базу.

  Ответить  
 
 автор: Explorer   (08.02.2011 в 20:34)   личное сообщение
 
 

это схоже с задачей вычисления возраста - есть много примеров в и-нете
а тут даже еще и попроще

используйте функцию DateDiff - она покажет разницу между двумя датами (например датой "подачи заявки" и "текущей датой") как раз целыми числами - например количество месяцев

запрос 1 вида
SELECT DateDiff("m","26/7/1967",Date()) AS howmanymonths FROM MSysObjects;
вернет целое количество месяцев прошедших со дня моего рождения

запрос 2 вида
SELECT DateDiff("m","26/7/1967",Date())\12 AS howmanyyears FROM MSysObjects;
вернет количество полных лет прошедших с тех пор

запрос 3 вида
SELECT DateDiff("m","26/7/1967",Date())\12*12 AS monthsbyyears FROM MSysObjects;
вернет количество целых месяцев в количестве прошедших целых лет

если из результата запроса 1 вычесть результат запроса 3 получится ответ
сколько целых месяцев осталось до моего очередного дня рождения

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList