Hilary,
Thanks for your patience :) I run a query for our Purpose drop down below:
adapter.Command = String.Format("SELECT Category from bpiPersonalReimbursementPurposeCategory where Purpose = '" + e.Site.text + "' order by Purpose,Category"
Since I can't use e.site.text because I won't be on the Purpose.OnAfterChange event, I'm not sure how to access the Purpose for the expense item in a repeating table that I have moved to. I think that's the last thing missing. Makes sense to re-query on the button. Sorry I didn't realize that. Helps to know that during the onBeforeChange event the DOM is read only.
Mary