Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Интервал даты Добавлено: 28.03.08 06:34  

Автор вопроса:  antihacker
Всем привет !

Вот код

If (DateAdd("m", 3, DateValue(Now)) >= DateValue(Me.data2.Value)) And (DateValue(Me.data2.Value) >= DateValue(Now)) Then

Me.Box167.Visible = True
Me.Box170.Visible = False
Me.Box171.Visible = False

'---------------------end green--------------------------
'---------------------yellow-----------------------------

ElseIf DateAdd("m", 2, DateValue(Now) >= Me.data2.Value) And Me.data2.Value >= DateValue(Now) Then

Me.Box167.Visible = False
Me.Box170.Visible = True
Me.Box171.Visible = False
'---------------------end yellow-------------------------
'---------------------red--------------------------------
ElseIf (DateAdd("m", 1, DateValue(Now)) >= Me.data2.Value) And (Me.data2.Value >= DateValue(Now)) Then

Me.Box167.Visible = False
Me.Box170.Visible = False
Me.Box171.Visible = True
End If
'---------------------end red----------------------------Me.Refresh
Me.Repaint

По идее если дата возвращаемая Me.data2.Value -ем лежит в интервале "текущая дата" и "текущая дата"+"3 месяц", то должен загарется зеленый цвет. Идентично если "текущая дата" и "текущая дата"+"2 месяц" , то желтый."текущая дата" и "текущая дата"+"1 месяц", то красный.
Но код не работает. Вроде бы правильно.

Помогите.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #1 Добавлено: 28.03.08 10:18
If (DateAdd("m", 3, DateValue(Now)) >= DateValue(Me.data2.Value)) And (DateValue(Me.data2.Value) >= DateValue(Now)) Then


и
ElseIf DateAdd("m", 2, DateValue(Now) >= Me.data2.Value) And Me.data2.Value >= DateValue(Now) Then


В первом делаешь преобразование в дату, а во втором нет. Так нужно ?

Ответить

Номер ответа: 2
Автор ответа:
 antihacker



Вопросов: 1
Ответов: 2
 Профиль | | #2 Добавлено: 28.03.08 11:20
Да я знаю и исправил. Но от этого ничего не зависит.

Ответить

Номер ответа: 3
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #3 Добавлено: 28.03.08 11:56
Мне иногда помогало "перевернуть" условие. Особенно с датами. Т.е. Сначала написать обработку "текущая дата" и "текущая дата"+"1 месяц", потом "текущая дата" и "текущая дата"+"2 месяц" и .т.д.

Еще можно отсоединить условия. Написать 3 простыми If, без Elseif. Только тут точно нужно "переворачивать" условия.

Может поможет ?

Ответить

Номер ответа: 4
Автор ответа:
 antihacker



Вопросов: 1
Ответов: 2
 Профиль | | #4 Добавлено: 28.03.08 13:02
Все сработало. Вот уж не подумал.

Спасибо тебе красавица !

Ответить

Номер ответа: 5
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #5 Добавлено: 28.03.08 13:24
Пожалуйста. :-)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам