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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Вычитание из даты количества месяцев в запросе
 
 автор: alex3005   (21.05.2009 в 07:59)   личное сообщение
 
 

Здравствуйте!
У меня такая ситуация.
Делаю запрос в Access
Есть два поля: в одном Конечная Дата (например 21.05.2009), в другом Количество месяцев просрочки (например 9), в новом поле должна быть дата, которая получается путем вычитания из Конечная дата месяцев просрочки (т.е. 01.05.2009 - 9 месяцев просрочки = 01.08.2008) причем дни будут всегда 01 (первое число каждого месяца)
Скажите пожалуйста как это сделать, какой формулой/функцией воспользоваться, а то все встало на этом, очень надо...
Заранее благодарен!

  Ответить  
 
 автор: АлексейЕ   (21.05.2009 в 10:02)   личное сообщение
 
 

Воспользуйтесь функцией DateAdd().
Например так:
DateAdd("m";-[Таблица]![Количество месяцев просрочки];[Таблица]![Конечная Дата])

  Ответить  
 
 автор: ars_bs   (21.05.2009 в 10:12)   личное сообщение
 
 

либо вот на скорую руку вроде работает
Public Function date_itog(date_nach As Date, mes As Integer) As Date
Dim x, y, z As Integer
Dim mes1 As Integer
Dim yaer1 As Integer
Dim day1 As String
mes1 = Month(date_nach)
yaer1 = Year(date_nach)
day1 = "01"
If mes1 < mes Then
x = mes1 - mes
mes1 = 12 + x
yaer1 = yaer1 - 1
x = day1 & "/" & Str(mes1) & "/" & Str(yaer1)
ElseIf mes1 = mes Then
yaer1 = yaer1 - 1
mes1 = 12
x = day1 & "/" & Str(mes1) & "/" & Str(yaer1)
ElseIf mes1 > mes Then
mes1 = mes1 - mes
x = day1 & "/" & Str(mes1) & "/" & Str(yaer1)
End If
date_itog = CDate(x)
End Function
пример запуска:
итоговоеполе=date_itog(поледата,поле количество просроченных месяцев)

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