/ Forums / Advansys Formativ / Creating Solutions with Formativ / DateTimePicker / Reply To: DateTimePicker
>if the user put the start and end date manually in the fields nothing happens…
I am not sure what you mean by “fields”. Are you referring to the DateTimePicker or Edit control? I suggest that you permit users to choose dates using only the DateTimePicker.
You can compare the Date properties of two DateTimePicker controls as shown in the example below:
'Datefunction Start Sub PickerStartChange(Sender) dim fromDate dim toDate fromDate = TasoUrlaub.PickerStart.Date toDate = TasoUrlaub.PickerEnd.Date if toDate > fromDate then MsgBox "Start date cannot be later than End date." end if End Sub
Your OnChange handler can also be used to fix an incorrect date after a user has broken the rule, as shown below:
'Datefunction Start Sub PickerStartChange(Sender) dim fromDate dim toDate fromDate = TasoUrlaub.PickerStart.Date toDate = TasoUrlaub.PickerEnd.Date if toDate > fromDate then MsgBox "Start date cannot be later than End date." TasoUrlaub.PickerStart.Date = TasoUrlaub.PickerEnd.Date end if End Sub
Another option is to use the OnUserInput event if you want to prevent a change to the date that breaks the rule. Note that you will need to edit the handler that is created automatically – add the ByRef keyword as shown below:
Sub PickerStartUserInput(Sender, UserString, DateAndTime, ByRef AllowChange)
dim fromDate dim toDate fromDate = TasoUrlaub.PickerStart.Date toDate = TasoUrlaub.PickerEnd.Date if toDate > fromDate then AllowChange = false end if
End Sub
In addition, I suggest using the built-in VBScript named constants, eg. vbSaturday, vbSunday instead of “magic numbers” like 7, 1, etc.
I hope this helps.
Regards,
Advansys Support
[This message was edited by Support 1 on October 06, 2008 at 08:28 PM.]