Sub fillMonthBoxes()
Dim monthArray(11) As String
Dim i As Integer
Dim m As Integer
m = Month(Now())
If m = 1 Then
m = 13
End If
For i = 1 To 12 Step 1
monthArray(i - 1) = MonthName(i)
Next i
'fill the month comboboxes and set value
cmbToMonth.List() = monthArray
cmbToMonth.Value = MonthName(m - 1)
cmbFromMonth.List() = monthArray
cmbFromMonth.Value = MonthName(m - 1)
End Sub
Sub fillYearBoxes()
Dim yearArray(4) As Integer
Dim i As Integer
Dim y As Integer
y = Year(Now()) - 2
'populate combo boxes
For i = 0 To 4 Step 1
cmbFromYear.AddItem (y + i)
cmbToYear.AddItem (y + i)
Next i
'set default value
cmbFromYear.Value = Year(Now())
cmbToYear.Value = Year(Now())
End Sub
Sub fillFromDayBox()
Dim i As Integer
Dim startDay As Integer
Dim endDay As Integer
Dim nextMonth As Integer
Dim theYear As Integer
Dim theMonth As Integer
Dim monthString As String
theMonth = cmbFromMonth.ListIndex + 1
theYear = cmbFromYear.Value
'set first and last days of month
nextMonth = (theMonth + 1)
If nextMonth = 13 Then
nextMonth = 1
theYear = theYear + 1
End If
startDay = 1
monthString = CStr(nextMonth) & "-" & CStr(startDay) & "-" & CStr(theYear)
endDay = Day(DateAdd("d", -1, monthString))
'remove all days from box
Do While cmbFromDay.ListCount > 0
cmbFromDay.RemoveItem (0)
Loop
'enter days into box
For i = startDay To endDay Step 1
cmbFromDay.AddItem (i)
Next i
cmbFromDay.ListRows = endDay
cmbFromDay.Value = startDay
End Sub