Linking two Access listboxes

[Two list boxes linked together] A single listbox is a good way of letting users select an entry from a table. Sometimes though, users' requirements are more complex and they need to be able to make the selection in two stages. The sample form opposite shows two list boxes. The left-hand box shows a choice of courses and the right-hand box shows the dates when the course selected by the user is running:

Two simple changes to the design will synchronize the listboxes and change the list of dates in the right-hand box whenever the user selects a new course in the left-hand box.

The first change is to set the RowSource of property the right-hand listbox so that it is based on the value of the left-hand listbox (named lstCourse here):

Select CourseID, Startdate
   From tblCourse
   Where CourseTypeID=lstCourse
   Order By Startdate;

The second is to make sure that the right-hand list box (named lstDates here) is updated every time that a new selection is made in the left-hand listbox. Put this code into the Click event of the left-hand listbox:

Private Sub lstCourse_Click()
  '-- Get the list of dates for the course selected.
  lstDates.Requery
End Sub

This works because the Click code runs whenever the user changes to a new row in the Courses list box - regardless of whether the change is made by an actual mouse click or by the cursor keys. Either way, a new list of dates will be created in the right-hand listbox.