Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1641
  • Last Modified:

Removing dates from a DateTimePicker in VB.NET?

One of the features in the program I'm working on will have the option for a user to create a daily report. The process begins with the user selecting the date they want to enter the report for. What I'd like to do is hide or exclude dates that have already been entered, since a user can't submit more than one report for the same day. Is there any way to remove a date entry from the DateTimePicker in VB.NET 2005?

If that isn't possible, I suppose the only other option is to populate a regular combobox with dates excluding those that have already been entered into the database, but I'm not sure exactly how to accurately populate a combobox with a date range.
0
elorc
Asked:
elorc
  • 2
  • 2
1 Solution
 
ChloesDadCommented:
You can't remove a single date or dates from the date time picker. All you can do is select a min date and a max date. Using a combo box would be a bit of a pain for users as they could have to scroll through several hundred dates to find the one that they want.

I would allow them full use of the date/time picker, and then check if the date is valid either in the click event of the report generation button, or in the valuechanged event of the date time picker.

The other option is to let the user recreate the report for the date, assuming the data is available to do this
0
 
elorcAuthor Commented:
Well the combobox wouldn't be that bad, actually. They can't create reports for dates that occur in the future, and they can't create reports for dates prior to 01/01/2009. So in theory, they'd only see a few dates in the combo box because these reports are filled out every day. That's kind of the reason I wanted to use the approach I mentioned, because it will make it clear that they missed a day.
0
 
ChloesDadCommented:
As long as you dont see that as a problem then populating a combo box is easy as long as you know what dates are valid for running a report. The code below will do what you want

dim startdate as date = new date(2009,1,1)
dim enddate as date = now.date
dim ReportaoDate as integer
 
datecombobox.clear
 
for ReportaoDate = startdate.toaodate to enddate.toaodate
 
if not ReportalreadyRun(ReportaoDate) then
  datecombobox.add(new date.fromaodate(reportaoDate))
endif
 
next reportaodate
 
 
The selectedItem property of the combo box will contain a date so you will need to directcast it into a date from an object to use it

Open in new window

0
 
elorcAuthor Commented:
I ended up using something similar to this and it does the trick. Thanks for the clarification.
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now