Free Lessons
Fast Tips
Topic Index
Home   Courses   Seminars   Templates   TechHelp   Fast Tips   Forums   Help   Contact   Join   Order   Logon  
Tips & Tricks

New Tips Added Weekly!
Click here to get on our Mailing List


Cascading Combo Boxes

Filtering the records in one combo box based on the value selected in another.

NEW: See my updated video: Cascading Combo

I have two combo boxes on my form. When the user selects a value in Combo Box One, I need to filter the list in Combo Box Two. For example, if the first combo box has a list of States, then I want Combo Box Two to show only cities from the state chosen in Combo Box One.

A: I get asked this question all the time. This is NOT easy to do, but it can be done. You need to know how to make a combo box, how to get a query critiera from a form field, and how to create an AfterUpdate event. Once you've mastered those techniques, you're ready to move on to this lesson.

Here is a FREE VIDEO TUTORIAL that will walk you through an example of working with multiple combo boxes. It's much easier to show you how it's done than to explain it here.

I teach the concepts in this free mini tutorial in my Access 307 course. These are full courses - over 60 minutes in length each. I spend a lot more time going over how to do this, in addition to lots more tips and tricks.

The updated version of this for Access 2007 - 2019 users can be found in Access Developer 6.


NEW: See my updated video: Cascading Combo

A customer has told me she's trying to cascade combo boxes in a SUBFORM. This adds a bit of complexity to the problem, but it can be done with a slightly different approach. Here's what I did. I used the same kind of setup, but in the RowSource for the CityCombo box, I used this SQL statement instead of a query:

SELECT City FROM CityT WHERE State=[StateCombo];

This removes the need for the query with the parameter. The query works fine for a single form solution, but when you're dealing with a continuous form or a SUBFORM, then you have to have each combo box deal with it's own record. In this case the "State=[StateCombo]" says for each record to look over at the value of the StateCombo box and fill in that value here for my record list.

But we're not done yet. Now, when you move from record to record, you need to make sure you update the CityCombo box's list of cities. So you need to put this in the CityCombo's OnGotFocus event:


Now this will force the CITY combo box to requery itself whenever you drop the box down. It will look over at the current State and show you only these records. Here's what I end up with:

It works PERFECTLY for me, and this solution is completely independent. It doesn't rely on any queries, nor any fields on the parent form.



By Richard Rost   Richard Rost on Twitter Richard Rost on LinkedIn Email Richard Rost
Click here to sign up for more FREE tips


Check out these other pages that may be of interest to you:

1/31/2023Group On Top
1/30/2023Association 8
1/27/2023Math in Fields
1/26/2023Association 7
1/25/2023Change Query
1/24/2023Association 6
1/23/2023Association 5
1/20/2023Association 4
1/19/2023Association 3
1/18/2023Association 2


The following is a paid advertisement
Computer Learning Zone is not responsible for any content shown or offers made by these ads.

Access - index
Excel - index
Word - index
Windows - index
PowerPoint - index
Photoshop - index
Visual Basic - index
ASP - index
My Account
My Courses
Lost Password
Student Databases
Change Email
Latest News
New Releases
User Forums
Topic Glossary
Tips & Tricks
Search The Site
Code Vault
Collapse Menus
Customer Support
Web Site Tour
Consulting Services
Affiliate Program
Richard Rost
Free Lessons
Mailing List
Video Tutorials
Learning Connection
Idiot's Guide to Excel
Volume Discounts
Payment Info
Terms of Sale
Contact Info
Support Policy
Mailing Address
Phone Number
Fax Number
Course Survey
Email Richard
[email protected]
Blog RSS Feed    Twitter

YouTube Channel    LinkedIn
Copyright 2023 by Computer Learning Zone, Amicron, and Richard Rost. All Rights Reserved. Current Time: 1/31/2023 10:59:45 PM.