LOCAL lcRowSource *** Set up the SQL statement to use as the RowSource for combo2 *** Select only the items that match the value in combo1. This assumes that *** something is selected in combo1 or that it has been initialized by *** setting This.ListIndex = 1 in combo1's init lcRowSource = 'SELECT yada, nada, blah ' lcRowSource = lcRowSource + 'FROM MyTable WHERE MyField = ( Thisform.Combo1.Value ) ' lcRowSource = lcRowSource + 'INTO CURSOR MyCursor' *** Now set up the combo's properties WITH Thisform.combo2 .RowSourceType = 3 .RowSource = lcRowSource *** Don't forget to repopulate the control's internal list .Requery() *** Inialize it to display the first item .ListIndex = 1 ENDWITH *** Set up the SQL statement to use as the RowSource for the third combo *** Select only the items that match the selected item in combo2 lcRowSource = 'SELECT Burp, Slurp, Chirp FROM MyOtherTable ' lcRowSource = lcRowSource + 'WHERE MyOtherFied = ( Thisform.Combo2.Value ) INTO CURSOR MyOtherCursor ' *** Now set up the combo's properties WITH Thisform.combo3 .RowSourceType = 3 .RowSource = lcRowSource *** Don't forget to repopulate the control's internal list .Requery() *** Inialize it to display the first item .ListIndex = 1 ENDWITHMarcia