I don't know if anyone else has had this problem when changing from one year to the next, but I haven't found any postings regarding date compare issues. I have a two-fold problem:
1. I have a combo box that lists available dates from a table in Descending order so the most recent date is on top. This worked in the last half of 2006, but when the year changed it is now listing the 2007 dates at the bottom of the list. The field is a Short Date in mm/dd/yyyy format. How do I list them in descending order (01/02/2007, 01/01/2007, 12/31/2006, 12/30/2006...)?
2. The user can also type a date in this field to enter a new record that isn't in the table, but I have After_Update code that also compares the date entered with today's date and gives a message if they enter a future date. This also worked in 2006, but now it is populating the future date message if they enter a date in the past. Here is part of the code:
'*****************************************
Private Sub cmbDate_AfterUpdate()
Dim strDate As String
Dim intResponse As Integer
strToday = Date
If IsNull(cmbDate) Or Len(cmbDate.Value) < 1 Then
MsgBox "Please select or enter a valid date."
cmbDate.SetFocus
Exit Sub
Else
strDate = cmbDate.Value
End If
If strDate > strToday Then
intResponse = MsgBox("You entered a future date. Do you want to continue with this date?", vbYesNo)
If intResponse = vbNo Then
cmbDate.Value = Date
Exit Sub
End If
End If
'**********************************************
I would appreciate any advise.
1. I have a combo box that lists available dates from a table in Descending order so the most recent date is on top. This worked in the last half of 2006, but when the year changed it is now listing the 2007 dates at the bottom of the list. The field is a Short Date in mm/dd/yyyy format. How do I list them in descending order (01/02/2007, 01/01/2007, 12/31/2006, 12/30/2006...)?
2. The user can also type a date in this field to enter a new record that isn't in the table, but I have After_Update code that also compares the date entered with today's date and gives a message if they enter a future date. This also worked in 2006, but now it is populating the future date message if they enter a date in the past. Here is part of the code:
'*****************************************
Private Sub cmbDate_AfterUpdate()
Dim strDate As String
Dim intResponse As Integer
strToday = Date
If IsNull(cmbDate) Or Len(cmbDate.Value) < 1 Then
MsgBox "Please select or enter a valid date."
cmbDate.SetFocus
Exit Sub
Else
strDate = cmbDate.Value
End If
If strDate > strToday Then
intResponse = MsgBox("You entered a future date. Do you want to continue with this date?", vbYesNo)
If intResponse = vbNo Then
cmbDate.Value = Date
Exit Sub
End If
End If
'**********************************************
I would appreciate any advise.