The following example uses the sample database Northwind.mdb (NWIND.MDB in
earlier versions). The first combo box lists the available product
categories, and the second combo box lists the available products for the
category selected in the first combo box:
- Open the sample database Northwind.mdb (or NWIND.MDB in 1.x and 2.0).
- Create the following new query based on the Products table, and then
save the query as Category Combo Query:
Query: Category Combo Query
---------------------------------------------------------
Table: Products
Type: Select Query
Field: ProductID (or Product ID in 1.x and 2.0)
Sort: Ascending
Show: Yes
Field: ProductName (or Product Name in 1.x and 2.0)
Table: Products
Show: Yes
Field: CategoryID (or Category ID in 1.x and 2.0)
Show: No
Criteria: Forms![frmCategoriesProducts]![Categories]
- Create a new form not based on any table or query with the following
combo boxes, and save the form as frmCategoriesProducts.
Combo Box 1
-------------------------------
Name: Categories
RowSourceType: Table/Query
RowSource: Categories
ColumnCount: 2
ColumnWidths: 0;1
BoundColumn: 1
AfterUpdate: Refresh Products
<B>NOTE</B>: The Name property is called the ControlName property in
Microsoft Access 1.x.
Combo Box 2
-----------------------------------
Name: Products
RowSourceType: Table/Query
RowSource: Category Combo Query
ColumnCount: 2
ColumnWidth: 0;1
BoundColumn: 1
NOTE: The BoundColumn property of the first combo box should not be set
to the field named in the Criteria row of the above query; otherwise,
the second combo box displays only the first record.
- Create the following new macro and save it as Refresh Products:
Macro Name Actions
---------------------------
Refresh Products Requery
Action Arguments
----------------
Control Name: Products
- View the frmCategoriesProducts form in Form view. When you select a
category in the first combo box, the second combo box is updated to
list only the available products for the selected category.
Notes
In the above example, the second combo box is filled with the results of
the Category Combo Query query. This query finds all the products that
have a CategoryID that matches the category selected in the first combo
box.
Whenever a category is selected in the first combo box, the AfterUpdate
property runs the Refresh Products macro, which forces the second combo
box to run the Category Combo Query query again. This refreshes the list
of available products in the second combo box. Without this macro, you
would have to force the second combo box to refresh itself by pressing
the F9 key.
Important: If the first combo box is bound, you should also assign the
Refresh Products Macro to the On Current event of the form.