Watch the video and/or follow the step by step instructions below (this will take about 15 minutes of your time but you will get what you came for!)
Requirements
- This example uses MS Access 2007 but it should also work in previous versions. 
 - You will need six objects in your database:
 - One form: frmMain 
 - Two combo boxes: The Master combo box: cboProjects and The Slave combo box: cboProjectTasks 
 - One table: tblProjectsAndTasks 
 - Two queries: The Master query: qryProjects and The Slave query: qryProjectTasks
 
- Create a new form and name it frmMain. 
 - Save the form.
 
- Create the Master combo box. 
 - Name it: cboProjects 
 - Create the Slave combo box. 
 - Name it: cboProjectTasks 
 - Save the form.
 
- Create a table and name it: tblProjectsAndTasks 
 - Add these FieldNames (and DataTypes):
 - TaskID (Autonumber) 
 - ProjectName (Text) 
 - TaskName (Text)
 - Populate the table.
 - In this example the projects are: Alpha, Delta and Gamma. 
 - And each project has multiple tasks, for example:
 - Project Alpha Task 1 
 - Project Alpha Task 2 
 - Project Gamma Task 3
 
- The Master Query should be named: qryProjects 
 - This query will select unique project names from tblProjectsAndTasks. 
 - It will be the data source for the master combo box. 
 - The SQL code for this query is: SELECT DISTINCT ProjectName FROM tblProjectsAndTasks; 
 - Alternatively, you could use the following SQL code: SELECT ProjectName FROM tblProjectsAndTasks GROUP BY ProjectName; 
 - Either way, the output should be:
 - Project Alpha 
 - Project Delta 
 - Project Gamma
 
- Create a new query and name it: qryProjectTasks 
 - This query will show tasks related to the project that is selected in cboProjects. 
 - The SQL code for this query is: SELECT DISTINCT ProjectName, TaskName FROM tblProjectsAndTasks WHERE ProjectName =[forms]![frmMain].[cboProjects].[value]; 
 - At this point, running this query will not return any results because the WHERE clause is looking for the project selected in cboProjects, which is not data bound yet!
 
- Give cboProjects these properties:
 - Row Source: qryProjects 
 - Row Source Type: Table/Query 
 - Column Count: 1 
 - Bound Column: 1
 
- Give cboProjectTasks these properties:
 - Row Source: qryProjectTasks 
 - Row Source Type: Table/Query 
 - Column Count: 2 
 - Column Width: 0";1" 
 - Bound Column: 2
 
- The slave combo box needs to be refreshed after each change in the master combo box. The VBA procedure below will refresh the slave combo box. 
 - This procedure should be tied to the On Change event of the master combo box. Private Sub cboProjects_Change() Me.cboProjectTasks.Requery End Sub
 
STEP 9: Clearing the Slave Combo Box:
- Refreshing the combo box does not clear the current task selected.
 
Modify the VBA procedure to clear the combo box:
Private Sub cboProjects_Change()
Me.cboProjectTasks.Requery
Me.cboProjectTasks = ""
End Sub 
STEP 10: ENJOY! 
