ProductName field in ProductTypes should instead be ProductType.
Set RowSource properties as follows:
cboLocations:
SELECT * FROM Locations WHERE CustomersID = [cboCustomers] ORDER BY Locations
cboProductTypes:
SELECT ProductType FROM ProductTypes WHERE LocationsID=[cboLocations] ORDER BY ProductName;
cboProducts:
SELECT Products FROM Products WHERE ProductTypes = [cboProductTypes] ORDER BY Products;
Then all you need in code is to requery the comboboxes.
Code:
Private Sub cboCustomers_AfterUpdate()
Me.cboLocations = Null
Me.cboProductTypes = Null
Me.cboProducts = Null
Me.cboLocations.Requery
End Sub
Private Sub cboLocations_AfterUpdate()
Me.cboProductTypes = Null
Me.cboProducts = Null
Me.cboProductTypes.Requery
End Sub
Private Sub cboProductTypes_AfterUpdate()
Me.cboProducts = Null
Me.cboProducts.Requery
End Sub
Suggest you use a naming convention of plurals for tables and singulars for field names. For instance table Products and field Product.