Visual Basic Helper Routines
Pure VB: Fill a Combo with Specified Time Intervals
Posted:   September 16, 2002
Updated:   Monday December 26, 2011
Applies to:   VB4-32, VB5, VB6
Developed with:   VB6, Windows XP
OS restrictions:   None
Author:   Newsgroup contributors


Pure VB: Methods to Determine the Last Day of the Month
Pure VB: Methods to Determine Number of Days in a Month
Pure VB: Determining Leap Years
VarMonthName: Retrieve Localized Month Names
VarWeekdayName: Retrieve Localized Weekday Names

A routine to populate a combo box with a full day of times at the specified time intervals. As coded, any interval between 1 and 60 minutes is accommodated - the illustration shows several popular ones. In addition, by specifying vbShortDate or vbLongDate, you can tailor the presentation of the dates.
 BAS Module Code

 Form Code
Toss a command button six combos on a form (Combo1-Combo6), and add the following code:

Option Explicit
' Copyright 1996-2011 VBnet/Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce 
'               or publish this code on any web site,
'               online service, or distribute as source 
'               on any media without express permission.
Private Sub Form_Load()
   Command1.Caption = "Fill"
End Sub

Private Sub Command1_Click()

   FillComboTimes Combo1, 5, vbShortTime
   FillComboTimes Combo2, 10, vbShortTime
   FillComboTimes Combo3, 15, vbShortTime
   FillComboTimes Combo4, 20, vbShortTime
   FillComboTimes Combo5, 30, vbShortTime
   FillComboTimes Combo6, 60, vbShortTime

End Sub

Private Sub FillComboTimes(cbo As ComboBox, _
                           period As Long, _
                           fmt As VbDateTimeFormat)

   Dim cnt As Long
   Dim t As Date
   If period < 1 Or period > 60 Then Exit Sub
   With cbo
      For cnt = 1 To (24 * (60 \ period))
         t = t + DateAdd("n", period, 0)
         .AddItem FormatDateTime(t, fmt)
      .ListIndex = 0
   End With

End Sub
VB versions not supporting the FormatDateTime method should use :

    cbo.AddItem Format$(t, fmt)

instead. In addition, change the definition of fmt from As Long to As String, and pass the appropriate format$-compatible time format, ie "short time" or "long time" (to get the am pm designations).


PayPal Link
Make payments with PayPal - it's fast, free and secure!


Copyright 1996-2011 VBnet and Randy Birch. All Rights Reserved.
Terms of Use  |  Your Privacy


Hit Counter